home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1985-08-17 | 18.3 KB | [ TEXT/EDIT]
open in: MacOS 8.1
extracted
|
Win98
extracted
|
DOS
extracted
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary ).
Confidence Program Detection Match Type Support
66%
dexvert
Compact Compressed (Unix) (archive/compact)
ext
Supported
10%
dexvert
MacBinary (archive/macBinary)
fallback
Supported
1%
dexvert
Text File (text/txt)
fallback
Supported
100%
file
MacBinary II, inited, Sat Aug 17 09:04:38 1985, modified Sat Aug 17 09:04:38 1985, creator Macintosh Edit, type ASCII, 17997 bytes "DemoWindow.C" , at 0x46cd 490 bytes resource
default (weak)
99%
file
data
default
74%
TrID
Macintosh plain text (MacBinary)
default
25%
TrID
MacBinary 2
default (weak)
100%
siegfried
fmt/1762 MacBinary (II)
default
100%
lsar
MacBinary
default
id metadata key value macFileType [ TEXT] macFileCreator [ EDIT]
hex view +--------+-------------------------+-------------------------+--------+--------+ |00000000| 00 0c 44 65 6d 6f 57 69 | 6e 64 6f 77 2e 43 00 00 |..DemoWi|ndow.C..| |00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000040| 00 54 45 58 54 45 44 49 | 54 01 00 00 00 00 00 00 |.TEXTEDI|T.......| |00000050| 00 00 00 00 00 46 4d 00 | 00 01 ea 99 8a 48 e6 99 |.....FM.|.....H..| |00000060| 8a 48 e6 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.H......|........| |00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 b9 e5 00 00 |........|........| |00000080| 2f 2a 0d 20 2a 20 20 44 | 65 6d 6f 57 69 6e 64 6f |/*. * D|emoWindo| |00000090| 77 2e 43 20 2d 20 57 69 | 6e 64 6f 77 20 73 74 75 |w.C - Wi|ndow stu| |000000a0| 66 66 20 66 6f 72 20 4d | 61 63 20 43 20 44 65 6d |ff for M|ac C Dem| |000000b0| 6f 0d 20 2a 0d 20 2a 09 | 09 42 6f 62 20 44 65 6e |o. *. *.|.Bob Den| |000000c0| 6e 79 0d 20 2a 09 09 4f | 63 74 6f 62 65 72 2c 20 |ny. *..O|ctober, | |000000d0| 31 39 38 34 0d 20 2a 2f | 0d 0d 23 69 6e 63 6c 75 |1984. */|..#inclu| |000000e0| 64 65 20 3c 44 65 6d 6f | 2e 48 3e 0d 0d 73 74 61 |de <Demo|.H>..sta| |000000f0| 74 69 63 20 69 6e 74 20 | 70 65 6e 5f 64 6f 77 6e |tic int |pen_down| |00000100| 20 3d 20 46 41 4c 53 45 | 3b 09 09 09 09 09 2f 2f | = FALSE|;.....//| |00000110| 20 53 63 72 61 77 6c 20 | 70 65 6e 20 69 73 20 6e | Scrawl |pen is n| |00000120| 6f 74 20 64 6f 77 6e 20 | 79 65 74 0d 73 74 61 74 |ot down |yet.stat| |00000130| 69 63 20 50 6f 69 6e 74 | 20 70 6f 6c 64 20 3d 20 |ic Point| pold = | |00000140| 7b 30 2c 30 7d 3b 09 09 | 09 09 09 09 2f 2f 20 53 |{0,0};..|....// S| |00000150| 63 72 61 77 6c 20 70 65 | 6e 20 69 73 20 61 74 20 |crawl pe|n is at | |00000160| 7b 30 2c 30 7d 0d 0d 2f | 2a 0d 20 2a 20 45 44 49 |{0,0}../|*. * EDI| |00000170| 54 5f 57 49 4e 44 4f 57 | 28 29 20 2d 20 43 72 65 |T_WINDOW|() - Cre| |00000180| 61 74 65 20 61 6e 20 22 | 65 64 69 74 20 77 69 6e |ate an "|edit win| |00000190| 64 6f 77 22 20 77 69 74 | 68 20 61 6c 6c 20 6f 66 |dow" wit|h all of| |000001a0| 20 74 68 65 20 75 73 75 | 61 6c 20 6a 75 6e 6b 0d | the usu|al junk.| |000001b0| 20 2a 0d 20 2a 20 41 6c | 6c 6f 63 61 74 65 73 20 | *. * Al|locates | |000001c0| 61 20 57 43 42 2c 20 63 | 72 65 61 74 65 73 20 74 |a WCB, c|reates t| |000001d0| 68 65 20 77 69 6e 64 6f | 77 20 66 72 6f 6d 20 61 |he windo|w from a| |000001e0| 20 72 65 73 6f 75 72 63 | 65 20 74 65 6d 70 6c 61 | resourc|e templa| |000001f0| 74 65 2c 0d 20 2a 20 63 | 6f 6d 70 6c 65 74 65 20 |te,. * c|omplete | |00000200| 77 69 74 68 20 73 63 72 | 6f 6c 6c 65 72 73 2c 20 |with scr|ollers, | |00000210| 67 72 6f 77 20 62 6f 78 | 2c 20 67 6f 2d 61 77 61 |grow box|, go-awa| |00000220| 79 20 62 6f 78 2c 20 65 | 74 63 2e 20 20 53 65 74 |y box, e|tc. Set| |00000230| 73 0d 20 2a 20 74 68 65 | 20 77 69 6e 64 6f 77 20 |s. * the| window | |00000240| 61 73 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 6f |as the c|urrent o| |00000250| 6e 65 20 61 6e 64 20 61 | 63 74 69 76 61 74 65 73 |ne and a|ctivates| |00000260| 20 69 74 2e 0d 20 2a 2f | 0d 65 64 69 74 5f 77 69 | it.. */|.edit_wi| |00000270| 6e 64 6f 77 28 29 0d 09 | 7b 0d 09 52 65 63 74 20 |ndow()..|{..Rect | |00000280| 76 69 65 77 5f 72 65 63 | 74 3b 09 09 09 09 09 09 |view_rec|t;......| |00000290| 09 09 2f 2f 20 54 65 78 | 74 45 64 69 74 20 76 69 |..// Tex|tEdit vi| |000002a0| 65 77 20 72 65 63 74 0d | 09 52 65 63 74 20 62 6f |ew rect.|.Rect bo| |000002b0| 75 6e 64 73 5f 72 65 63 | 74 3b 09 09 09 09 09 09 |unds_rec|t;......| |000002c0| 09 09 2f 2f 20 42 6f 75 | 6e 64 73 20 66 6f 72 20 |..// Bou|nds for | |000002d0| 73 63 72 6f 6c 6c 65 72 | 73 0d 09 52 65 63 74 20 |scroller|s..Rect | |000002e0| 64 65 73 74 5f 72 65 63 | 74 0d 09 52 65 63 74 20 |dest_rec|t..Rect | |000002f0| 2a 70 72 3b 09 09 09 09 | 09 09 09 09 09 09 2f 2f |*pr;....|......//| |00000300| 20 2d 2d 3e 20 70 6f 72 | 74 27 73 20 72 65 63 74 | --> por|t's rect| |00000310| 0d 09 0d 09 64 65 73 74 | 5f 72 65 63 74 2e 74 6f |....dest|_rect.to| |00000320| 70 20 3d 20 34 3b 09 09 | 09 09 09 09 09 2f 2f 20 |p = 4;..|.....// | |00000330| 2a 2a 2a 20 54 45 4d 50 | 4f 52 41 52 59 20 2a 2a |*** TEMP|ORARY **| |00000340| 2a 0d 09 64 65 73 74 5f | 72 65 63 74 2e 6c 65 66 |*..dest_|rect.lef| |00000350| 74 20 3d 20 34 3b 0d 09 | 64 65 73 74 5f 72 65 63 |t = 4;..|dest_rec| |00000360| 74 2e 62 6f 74 74 6f 6d | 20 3d 20 31 30 30 30 3b |t.bottom| = 1000;| |00000370| 0d 09 64 65 73 74 5f 72 | 65 63 74 2e 72 69 67 68 |..dest_r|ect.righ| |00000380| 74 20 3d 20 35 30 30 3b | 0d 09 0d 09 69 66 28 28 |t = 500;|....if((| |00000390| 64 77 70 20 3d 20 28 73 | 74 72 75 63 74 20 77 63 |dwp = (s|truct wc| |000003a0| 62 20 2a 29 67 65 74 5f | 77 63 62 28 29 29 20 3d |b *)get_|wcb()) =| |000003b0| 3d 20 4e 55 4c 4c 29 0d | 09 09 72 65 74 75 72 6e |= NULL).|..return| |000003c0| 3b 09 09 09 09 09 09 09 | 09 09 09 2f 2f 20 49 67 |;.......|...// Ig| |000003d0| 6e 6f 72 65 20 69 66 20 | 6e 6f 20 6d 6f 72 65 20 |nore if |no more | |000003e0| 57 43 42 27 73 0d 09 0d | 09 2f 2f 0d 09 2f 2f 20 |WCB's...|.//..// | |000003f0| 54 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 73 65 |The foll|owing se| |00000400| 74 73 20 75 70 20 74 68 | 65 20 77 69 6e 64 6f 77 |ts up th|e window| |00000410| 27 73 20 62 61 73 69 63 | 20 64 69 6d 65 6e 73 69 |'s basic| dimensi| |00000420| 6f 6e 73 20 61 6e 64 0d | 09 2f 2f 20 72 65 63 74 |ons and.|.// rect| |00000430| 27 73 2e 20 20 45 61 63 | 68 20 77 69 6e 64 6f 77 |'s. Eac|h window| |00000440| 20 73 74 61 72 74 73 20 | 6f 75 74 20 61 73 20 61 | starts |out as a| |00000450| 20 72 65 73 6f 75 72 63 | 65 20 74 65 6d 70 6c 61 | resourc|e templa| |00000460| 74 65 2c 20 62 75 74 0d | 09 2f 2f 20 61 74 20 74 |te, but.|.// at t| |00000470| 68 69 73 20 70 6f 69 6e | 74 20 69 6e 20 74 68 65 |his poin|t in the| |00000480| 20 70 72 6f 67 72 61 6d | 2c 20 79 6f 75 20 63 6f | program|, you co| |00000490| 75 6c 64 20 66 69 64 64 | 6c 65 20 74 68 65 20 77 |uld fidd|le the w| |000004a0| 69 6e 64 6f 77 20 2e 2e | 2e 0d 09 2f 2f 20 46 6f |indow ..|...// Fo| |000004b0| 72 20 65 78 61 6d 70 6c | 65 2c 20 79 6f 75 20 63 |r exampl|e, you c| |000004c0| 6f 75 6c 64 20 63 68 61 | 6e 67 65 20 69 74 27 73 |ould cha|nge it's| |000004d0| 20 73 69 7a 65 20 6f 72 | 20 6c 6f 63 61 74 69 6f | size or| locatio| |000004e0| 6e 2c 20 64 72 61 67 20 | 6f 72 0d 09 2f 2f 20 67 |n, drag |or..// g| |000004f0| 72 6f 77 20 72 65 63 74 | 20 65 74 63 2e 20 20 54 |row rect| etc. T| |00000500| 68 65 20 72 65 73 74 20 | 6f 66 20 74 68 65 20 63 |he rest |of the c| |00000510| 6f 64 65 20 64 72 69 76 | 65 73 20 6f 66 66 20 6f |ode driv|es off o| |00000520| 66 20 74 68 65 20 62 61 | 73 69 63 0d 09 2f 2f 20 |f the ba|sic..// | |00000530| 77 69 6e 64 6f 77 20 64 | 69 6d 65 6e 73 69 6f 6e |window d|imension| |00000540| 73 2e 0d 09 2f 2f 0d 09 | 64 77 70 2d 3e 77 70 20 |s...//..|dwp->wp | |00000550| 3d 20 28 57 69 6e 64 6f | 77 50 74 72 29 23 47 65 |= (Windo|wPtr)#Ge| |00000560| 74 4e 65 77 57 69 6e 64 | 6f 77 28 57 49 4e 44 4f |tNewWind|ow(WINDO| |00000570| 57 5f 49 44 2c 20 30 2c | 20 2d 31 29 3b 09 2f 2f |W_ID, 0,| -1);.//| |00000580| 20 47 65 74 20 61 20 63 | 6f 70 79 20 6f 66 20 74 | Get a c|opy of t| |00000590| 68 65 20 77 69 6e 64 6f | 77 0d 09 23 53 65 74 57 |he windo|w..#SetW| |000005a0| 54 69 74 6c 65 28 64 77 | 70 2d 3e 77 70 2c 20 22 |Title(dw|p->wp, "| |000005b0| 5c 30 31 33 45 64 69 74 | 20 57 69 6e 64 6f 77 22 |\013Edit| Window"| |000005c0| 29 3b 09 09 2f 2f 20 48 | 61 63 6b 20 74 68 65 20 |);..// H|ack the | |000005d0| 74 69 74 6c 65 0d 09 23 | 53 65 74 52 65 63 74 28 |title..#|SetRect(| |000005e0| 26 64 77 70 2d 3e 64 72 | 61 67 5f 72 65 63 74 2c |&dwp->dr|ag_rect,| |000005f0| 20 34 2c 20 32 34 2c 20 | 35 30 38 2c 20 33 33 38 | 4, 24, |508, 338| |00000600| 29 3b 09 2f 2f 20 46 69 | 78 65 64 20 76 61 6c 75 |);.// Fi|xed valu| |00000610| 65 73 20 69 6e 20 65 78 | 61 6d 70 6c 65 0d 09 23 |es in ex|ample..#| |00000620| 53 65 74 52 65 63 74 28 | 26 64 77 70 2d 3e 67 72 |SetRect(|&dwp->gr| |00000630| 6f 77 5f 72 65 63 74 2c | 20 31 30 30 2c 20 36 30 |ow_rect,| 100, 60| |00000640| 2c 20 35 31 32 2c 20 33 | 30 32 29 3b 0d 09 23 53 |, 512, 3|02);..#S| |00000650| 65 74 50 6f 72 74 28 64 | 77 70 2d 3e 77 70 29 3b |etPort(d|wp->wp);| |00000660| 09 09 09 09 09 09 09 09 | 09 2f 2f 20 48 6f 6f 6b |........|.// Hook| |00000670| 20 51 75 69 63 6b 44 72 | 61 77 20 75 70 20 74 6f | QuickDr|aw up to| |00000680| 20 77 69 6e 64 6f 77 0d | 09 0d 09 2f 2f 0d 09 2f | window.|...//../| |00000690| 2f 20 53 65 74 20 75 70 | 20 54 65 78 74 45 64 69 |/ Set up| TextEdi| |000006a0| 74 20 69 6e 20 74 68 65 | 20 77 69 6e 64 6f 77 0d |t in the| window.| |000006b0| 09 2f 2f 0d 09 2f 2f 20 | 46 6f 72 20 74 68 69 73 |.//..// |For this| |000006c0| 20 70 72 6f 67 72 61 6d | 2c 20 74 68 65 20 64 65 | program|, the de| |000006d0| 73 74 52 65 63 74 20 69 | 73 20 61 6e 20 61 72 62 |stRect i|s an arb| |000006e0| 69 74 72 61 72 79 20 73 | 69 7a 65 0d 09 2f 2f 20 |itrary s|ize..// | |000006f0| 6c 61 72 67 65 20 65 6e | 6f 75 67 68 20 74 6f 20 |large en|ough to | |00000700| 64 65 6d 6f 6e 73 74 72 | 61 74 65 20 68 6f 72 69 |demonstr|ate hori| |00000710| 7a 6f 6e 74 61 6c 20 61 | 6e 64 20 76 65 72 74 69 |zontal a|nd verti| |00000720| 63 61 6c 20 0d 09 2f 2f | 20 73 63 72 6f 6c 6c 69 |cal ..//| scrolli| |00000730| 6e 67 2e 20 20 54 68 65 | 20 76 69 65 77 52 65 63 |ng. The| viewRec| |00000740| 74 20 69 73 20 73 65 74 | 20 74 6f 20 74 68 65 20 |t is set| to the | |00000750| 77 69 6e 64 6f 77 27 73 | 20 70 6f 72 74 52 65 63 |window's| portRec| |00000760| 74 0d 09 2f 2f 20 6c 65 | 73 73 20 34 20 70 69 78 |t..// le|ss 4 pix| |00000770| 65 6c 73 20 22 62 6c 65 | 65 64 22 20 6f 6e 20 74 |els "ble|ed" on t| |00000780| 68 65 20 6c 65 66 74 20 | 73 69 64 65 20 61 6e 64 |he left |side and| |00000790| 20 31 35 20 70 69 78 65 | 6c 73 20 6f 6e 20 74 68 | 15 pixe|ls on th| |000007a0| 65 0d 09 2f 2f 20 72 69 | 67 68 74 20 61 6e 64 20 |e..// ri|ght and | |000007b0| 62 6f 74 74 6f 6d 20 66 | 6f 72 20 74 68 65 20 73 |bottom f|or the s| |000007c0| 63 72 6f 6c 6c 20 62 61 | 72 73 20 28 74 68 61 6e |croll ba|rs (than| |000007d0| 6b 73 20 74 6f 20 63 61 | 6c 63 5f 76 72 65 63 74 |ks to ca|lc_vrect| |000007e0| 28 29 29 2e 0d 09 2f 2f | 0d 09 70 72 20 3d 20 26 |())...//|..pr = &| |000007f0| 28 28 64 77 70 2d 3e 77 | 70 29 2d 3e 70 6f 72 74 |((dwp->w|p)->port| |00000800| 52 65 63 74 29 3b 0d 09 | 63 61 6c 63 5f 76 72 65 |Rect);..|calc_vre| |00000810| 63 74 28 70 72 2c 20 26 | 76 69 65 77 5f 72 65 63 |ct(pr, &|view_rec| |00000820| 74 29 3b 09 09 09 2f 2f | 20 43 61 6c 63 75 6c 61 |t);...//| Calcula| |00000830| 74 65 20 76 69 65 77 52 | 65 63 74 0d 09 64 77 70 |te viewR|ect..dwp| |00000840| 2d 3e 74 65 5f 68 61 6e | 64 6c 65 20 3d 20 28 54 |->te_han|dle = (T| |00000850| 45 48 61 6e 64 6c 65 29 | 23 54 45 4e 65 77 28 26 |EHandle)|#TENew(&| |00000860| 64 65 73 74 5f 72 65 63 | 74 2c 20 26 76 69 65 77 |dest_rec|t, &view| |00000870| 5f 72 65 63 74 29 3b 0d | 09 64 77 70 2d 3e 74 65 |_rect);.|.dwp->te| |00000880| 5f 6f 72 69 67 69 6e 2e | 76 20 3d 20 64 77 70 2d |_origin.|v = dwp-| |00000890| 3e 74 65 5f 6f 72 69 67 | 69 6e 2e 68 20 3d 20 34 |>te_orig|in.h = 4| |000008a0| 3b 0d 0d 09 2f 2f 0d 09 | 2f 2f 20 41 64 64 20 74 |;...//..|// Add t| |000008b0| 68 65 20 73 63 72 6f 6c | 6c 20 62 61 72 73 2e 20 |he scrol|l bars. | |000008c0| 44 79 6e 61 6d 69 63 61 | 6c 6c 79 20 63 61 6c 63 |Dynamica|lly calc| |000008d0| 75 6c 61 74 65 64 20 66 | 72 6f 6d 20 77 69 6e 64 |ulated f|rom wind| |000008e0| 6f 77 0d 09 2f 2f 20 64 | 69 6d 65 6e 73 69 6f 6e |ow..// d|imension| |000008f0| 73 2e 20 20 4e 6f 74 65 | 20 74 68 61 74 20 74 68 |s. Note| that th| |00000900| 65 20 63 6f 6e 74 72 6f | 6c 73 20 6d 75 73 74 20 |e contro|ls must | |00000910| 6f 76 65 72 6c 61 70 20 | 74 68 65 20 0d 09 2f 2f |overlap |the ..//| |00000920| 20 77 69 6e 64 6f 77 20 | 62 6f 75 6e 64 61 72 69 | window |boundari| |00000930| 65 73 2e 20 20 53 74 61 | 72 74 20 63 6f 6e 74 72 |es. Sta|rt contr| |00000940| 6f 6c 73 20 6f 75 74 20 | 68 69 64 64 65 6e 2c 20 |ols out |hidden, | |00000950| 61 63 74 69 76 61 74 65 | 20 77 69 6c 6c 0d 09 2f |activate| will../| |00000960| 2f 20 64 72 61 77 20 74 | 68 65 6d 2e 0d 09 2f 2f |/ draw t|hem...//| |00000970| 0d 09 62 6f 75 6e 64 73 | 5f 72 65 63 74 2e 74 6f |..bounds|_rect.to| |00000980| 70 20 3d 20 70 72 2d 3e | 74 6f 70 20 2d 20 31 3b |p = pr->|top - 1;| |00000990| 0d 09 62 6f 75 6e 64 73 | 5f 72 65 63 74 2e 6c 65 |..bounds|_rect.le| |000009a0| 66 74 20 3d 20 70 72 2d | 3e 72 69 67 68 74 20 2d |ft = pr-|>right -| |000009b0| 20 31 35 3b 0d 09 62 6f | 75 6e 64 73 5f 72 65 63 | 15;..bo|unds_rec| |000009c0| 74 2e 62 6f 74 74 6f 6d | 20 3d 20 70 72 2d 3e 62 |t.bottom| = pr->b| |000009d0| 6f 74 74 6f 6d 20 2d 20 | 31 34 3b 0d 09 62 6f 75 |ottom - |14;..bou| |000009e0| 6e 64 73 5f 72 65 63 74 | 2e 72 69 67 68 74 20 3d |nds_rect|.right =| |000009f0| 20 70 72 2d 3e 72 69 67 | 68 74 20 2b 20 31 3b 0d | pr->rig|ht + 1;.| |00000a00| 09 64 77 70 2d 3e 76 73 | 5f 68 61 6e 64 6c 65 20 |.dwp->vs|_handle | |00000a10| 3d 20 28 43 6f 6e 74 72 | 6f 6c 48 61 6e 64 6c 65 |= (Contr|olHandle| |00000a20| 29 23 4e 65 77 43 6f 6e | 74 72 6f 6c 28 64 77 70 |)#NewCon|trol(dwp| |00000a30| 2d 3e 77 70 2c 20 26 62 | 6f 75 6e 64 73 5f 72 65 |->wp, &b|ounds_re| |00000a40| 63 74 2c 0d 09 09 09 09 | 09 09 09 09 22 22 2c 20 |ct,.....|...."", | |00000a50| 54 52 55 45 2c 0d 09 09 | 09 09 09 09 09 09 64 65 |TRUE,...|......de| |00000a60| 73 74 5f 72 65 63 74 2e | 74 6f 70 2c 20 64 65 73 |st_rect.|top, des| |00000a70| 74 5f 72 65 63 74 2e 74 | 6f 70 2c 20 64 65 73 74 |t_rect.t|op, dest| |00000a80| 5f 72 65 63 74 2e 62 6f | 74 74 6f 6d 2c 0d 09 09 |_rect.bo|ttom,...| |00000a90| 09 09 09 09 09 09 73 63 | 72 6f 6c 6c 42 61 72 50 |......sc|rollBarP| |00000aa0| 72 6f 63 2c 20 31 29 3b | 0d 09 23 56 61 6c 69 64 |roc, 1);|..#Valid| |00000ab0| 52 65 63 74 28 26 62 6f | 75 6e 64 73 5f 72 65 63 |Rect(&bo|unds_rec| |00000ac0| 74 29 3b 0d 0d 09 62 6f | 75 6e 64 73 5f 72 65 63 |t);...bo|unds_rec| |00000ad0| 74 2e 74 6f 70 20 3d 20 | 70 72 2d 3e 62 6f 74 74 |t.top = |pr->bott| |00000ae0| 6f 6d 20 2d 20 31 35 3b | 0d 09 62 6f 75 6e 64 73 |om - 15;|..bounds| |00000af0| 5f 72 65 63 74 2e 6c 65 | 66 74 20 3d 20 70 72 2d |_rect.le|ft = pr-| |00000b00| 3e 6c 65 66 74 20 2d 20 | 31 3b 0d 09 62 6f 75 6e |>left - |1;..boun| |00000b10| 64 73 5f 72 65 63 74 2e | 62 6f 74 74 6f 6d 20 3d |ds_rect.|bottom =| |00000b20| 20 70 72 2d 3e 62 6f 74 | 74 6f 6d 20 2b 20 31 3b | pr->bot|tom + 1;| |00000b30| 0d 09 62 6f 75 6e 64 73 | 5f 72 65 63 74 2e 72 69 |..bounds|_rect.ri| |00000b40| 67 68 74 20 3d 20 70 72 | 2d 3e 72 69 67 68 74 20 |ght = pr|->right | |00000b50| 2d 20 31 34 3b 0d 09 64 | 77 70 2d 3e 68 73 5f 68 |- 14;..d|wp->hs_h| |00000b60| 61 6e 64 6c 65 20 3d 20 | 28 43 6f 6e 74 72 6f 6c |andle = |(Control| |00000b70| 48 61 6e 64 6c 65 29 23 | 4e 65 77 43 6f 6e 74 72 |Handle)#|NewContr| |00000b80| 6f 6c 28 64 77 70 2d 3e | 77 70 2c 20 26 62 6f 75 |ol(dwp->|wp, &bou| |00000b90| 6e 64 73 5f 72 65 63 74 | 2c 0d 09 09 09 09 09 09 |nds_rect|,.......| |00000ba0| 09 09 22 22 2c 20 54 52 | 55 45 2c 0d 09 09 09 09 |.."", TR|UE,.....| |00000bb0| 09 09 09 09 64 65 73 74 | 5f 72 65 63 74 2e 6c 65 |....dest|_rect.le| |00000bc0| 66 74 2c 20 64 65 73 74 | 5f 72 65 63 74 2e 6c 65 |ft, dest|_rect.le| |00000bd0| 66 74 2c 20 64 65 73 74 | 5f 72 65 63 74 2e 72 69 |ft, dest|_rect.ri| |00000be0| 67 68 74 2c 0d 09 09 09 | 09 09 09 09 09 73 63 72 |ght,....|.....scr| |00000bf0| 6f 6c 6c 42 61 72 50 72 | 6f 63 2c 20 31 29 3b 0d |ollBarPr|oc, 1);.| |00000c00| 09 23 56 61 6c 69 64 52 | 65 63 74 28 26 62 6f 75 |.#ValidR|ect(&bou| |00000c10| 6e 64 73 5f 72 65 63 74 | 29 3b 0d 0d 09 2f 2f 0d |nds_rect|);...//.| |00000c20| 09 2f 2f 20 46 69 6e 61 | 6c 6c 79 2c 20 64 72 61 |.// Fina|lly, dra| |00000c30| 77 20 69 6e 20 74 68 65 | 20 22 67 72 6f 77 20 69 |w in the| "grow i| |00000c40| 63 6f 6e 22 0d 09 2f 2f | 0d 09 23 44 72 61 77 47 |con"..//|..#DrawG| |00000c50| 72 6f 77 49 63 6f 6e 28 | 64 77 70 2d 3e 77 70 29 |rowIcon(|dwp->wp)| |00000c60| 3b 0d 09 6e 5f 77 69 6e | 64 6f 77 73 2b 2b 3b 0d |;..n_win|dows++;.| |00000c70| 09 7d 0d 0d 2f 2a 0d 20 | 2a 20 53 43 52 41 57 4c |.}../*. |* SCRAWL| |00000c80| 5f 57 49 4e 44 4f 57 20 | 2d 20 43 72 65 61 74 65 |_WINDOW |- Create| |00000c90| 20 61 20 22 73 63 72 61 | 77 6c 22 20 77 69 6e 64 | a "scra|wl" wind| |00000ca0| 6f 77 20 0d 20 2a 2f 0d | 73 63 72 61 77 6c 5f 77 |ow . */.|scrawl_w| |00000cb0| 69 6e 64 6f 77 28 29 0d | 09 7b 0d 09 69 66 28 28 |indow().|.{..if((| |00000cc0| 64 77 70 20 3d 20 28 73 | 74 72 75 63 74 20 77 63 |dwp = (s|truct wc| |00000cd0| 62 20 2a 29 67 65 74 5f | 77 63 62 28 29 29 20 3d |b *)get_|wcb()) =| |00000ce0| 3d 20 4e 55 4c 4c 29 0d | 09 09 72 65 74 75 72 6e |= NULL).|..return| |00000cf0| 3b 09 09 09 09 09 09 09 | 09 09 09 2f 2f 20 49 67 |;.......|...// Ig| |00000d00| 6e 6f 72 65 20 69 66 20 | 6e 6f 20 6d 6f 72 65 20 |nore if |no more | |00000d10| 57 43 42 27 73 0d 09 2f | 2f 0d 09 2f 2f 20 53 65 |WCB's../|/..// Se| |00000d20| 65 20 63 6f 6d 6d 65 6e | 74 73 20 61 62 6f 76 65 |e commen|ts above| |00000d30| 20 2e 2e 2e 0d 09 2f 2f | 0d 09 64 77 70 2d 3e 77 | .....//|..dwp->w| |00000d40| 70 20 3d 20 28 57 69 6e | 64 6f 77 50 74 72 29 23 |p = (Win|dowPtr)#| |00000d50| 47 65 74 4e 65 77 57 69 | 6e 64 6f 77 28 57 49 4e |GetNewWi|ndow(WIN| |00000d60| 44 4f 57 5f 49 44 2c 20 | 30 2c 20 2d 31 29 3b 09 |DOW_ID, |0, -1);.| |00000d70| 2f 2f 20 47 65 74 20 61 | 20 63 6f 70 79 20 6f 66 |// Get a| copy of| |00000d80| 20 74 68 65 20 77 69 6e | 64 6f 77 0d 09 23 53 65 | the win|dow..#Se| |00000d90| 74 57 54 69 74 6c 65 28 | 64 77 70 2d 3e 77 70 2c |tWTitle(|dwp->wp,| |00000da0| 20 22 5c 30 31 35 53 63 | 72 61 77 6c 20 57 69 6e | "\015Sc|rawl Win| |00000db0| 64 6f 77 22 29 3b 09 09 | 2f 2f 20 48 61 63 6b 20 |dow");..|// Hack | |00000dc0| 74 68 65 20 74 69 74 6c | 65 0d 09 23 53 65 74 52 |the titl|e..#SetR| |00000dd0| 65 63 74 28 26 64 77 70 | 2d 3e 64 72 61 67 5f 72 |ect(&dwp|->drag_r| |00000de0| 65 63 74 2c 20 34 2c 20 | 32 34 2c 20 35 30 38 2c |ect, 4, |24, 508,| |00000df0| 20 33 33 38 29 3b 09 2f | 2f 20 46 69 78 65 64 20 | 338);./|/ Fixed | |00000e00| 76 61 6c 75 65 73 20 69 | 6e 20 65 78 61 6d 70 6c |values i|n exampl| |00000e10| 65 0d 09 23 53 65 74 52 | 65 63 74 28 26 64 77 70 |e..#SetR|ect(&dwp| |00000e20| 2d 3e 67 72 6f 77 5f 72 | 65 63 74 2c 20 31 30 30 |->grow_r|ect, 100| |00000e30| 2c 20 36 30 2c 20 35 31 | 32 2c 20 33 30 32 29 3b |, 60, 51|2, 302);| |00000e40| 0d 09 23 53 65 74 50 6f | 72 74 28 64 77 70 2d 3e |..#SetPo|rt(dwp->| |00000e50| 77 70 29 3b 09 09 09 09 | 09 09 09 2f 2f 20 48 6f |wp);....|...// Ho| |00000e60| 6f 6b 20 51 75 69 63 6b | 44 72 61 77 20 75 70 20 |ok Quick|Draw up | |00000e70| 74 6f 20 77 69 6e 64 6f | 77 0d 09 23 42 61 63 6b |to windo|w..#Back| |00000e80| 50 61 74 28 26 28 51 44 | 2d 3e 62 6c 61 63 6b 29 |Pat(&(QD|->black)| |00000e90| 29 3b 09 09 09 09 09 09 | 2f 2f 20 42 61 63 6b 67 |);......|// Backg| |00000ea0| 72 6f 75 6e 64 20 69 73 | 20 62 6c 61 63 6b 0d 09 |round is| black..| |00000eb0| 23 50 65 6e 50 61 74 28 | 26 28 51 44 2d 3e 77 68 |#PenPat(|&(QD->wh| |00000ec0| 69 74 65 29 29 3b 09 09 | 09 09 09 09 2f 2f 20 50 |ite));..|....// P| |00000ed0| 65 6e 20 69 73 20 77 68 | 69 74 65 20 28 72 65 64 |en is wh|ite (red| |00000ee0| 75 6e 64 61 6e 74 3f 3f | 29 0d 09 23 50 65 6e 53 |undant??|)..#PenS| |00000ef0| 69 7a 65 28 32 2c 32 29 | 3b 09 09 09 09 09 09 09 |ize(2,2)|;.......| |00000f00| 09 09 2f 2f 20 32 78 32 | 20 70 69 78 65 6c 73 0d |..// 2x2| pixels.| |00000f10| 09 23 45 72 61 73 65 52 | 65 63 74 28 26 28 64 77 |.#EraseR|ect(&(dw| |00000f20| 70 2d 3e 77 70 2d 3e 70 | 6f 72 74 52 65 63 74 29 |p->wp->p|ortRect)| |00000f30| 29 3b 20 09 09 2f 2f 20 | 45 73 74 61 62 6c 69 73 |); ..// |Establis| |00000f40| 68 20 6e 65 77 20 62 61 | 63 6b 67 72 6f 75 6e 64 |h new ba|ckground| |00000f50| 0d 09 6e 5f 77 69 6e 64 | 6f 77 73 2b 2b 3b 0d 09 |..n_wind|ows++;..| |00000f60| 72 65 74 75 72 6e 28 30 | 29 3b 0d 09 7d 0d 0d 2f |return(0|);..}../| |00000f70| 2a 0d 20 2a 20 44 45 4c | 45 54 45 5f 57 49 4e 44 |*. * DEL|ETE_WIND| |00000f80| 4f 57 28 29 20 2d 20 52 | 65 6d 6f 76 65 20 77 69 |OW() - R|emove wi| |00000f90| 6e 64 6f 77 20 66 72 6f | 6d 20 73 63 72 65 65 6e |ndow fro|m screen| |00000fa0| 20 26 20 64 69 73 70 6f | 73 65 20 6f 66 20 61 6c | & dispo|se of al| |00000fb0| 6c 20 73 74 72 75 63 74 | 75 72 65 73 0d 20 2a 0d |l struct|ures. *.| |00000fc0| 20 2a 20 49 6e 70 75 74 | 73 3a 0d 20 2a 09 09 09 | * Input|s:. *...| |00000fd0| 64 70 09 2d 2d 3e 20 57 | 43 42 20 6f 66 20 74 68 |dp.--> W|CB of th| |00000fe0| 65 20 77 69 6e 64 6f 77 | 20 74 6f 20 64 65 6c 65 |e window| to dele| |00000ff0| 74 65 0d 20 2a 0d 20 2a | 09 4f 75 74 70 75 74 73 |te. *. *|.Outputs| |00001000| 3a 0d 20 2a 09 09 09 09 | 6e 6f 6e 65 0d 20 2a 0d |:. *....|none. *.| |00001010| 20 2a 20 43 61 6c 6c 73 | 20 74 68 65 20 03 23 44 | * Calls| the .#D| |00001020| 69 73 70 6f 73 65 57 69 | 6e 64 6f 77 20 73 65 72 |isposeWi|ndow ser| |00001030| 76 69 63 65 20 74 6f 20 | 72 65 6d 6f 76 65 20 74 |vice to |remove t| |00001040| 68 65 20 77 69 6e 64 6f | 77 20 66 72 6f 6d 20 74 |he windo|w from t| |00001050| 68 65 20 73 63 72 65 65 | 6e 0d 20 2a 20 61 6e 64 |he scree|n. * and| |00001060| 20 72 65 6c 65 61 73 65 | 20 61 6c 6c 20 61 73 73 | release| all ass| |00001070| 6f 63 69 61 74 65 64 20 | 64 61 74 61 20 73 74 72 |ociated |data str| |00001080| 75 63 74 75 72 65 73 2c | 20 69 6e 63 6c 75 64 69 |uctures,| includi| |00001090| 6e 67 20 74 68 65 20 77 | 69 6e 64 6f 77 0d 20 2a |ng the w|indow. *| |000010a0| 20 72 65 63 6f 72 64 2e | 20 4e 4f 54 45 20 2d 20 | record.| NOTE - | |000010b0| 61 73 73 75 6d 65 73 20 | 77 69 6e 64 6f 77 20 77 |assumes |window w| |000010c0| 61 73 20 63 72 65 61 74 | 65 64 20 77 69 74 68 20 |as creat|ed with | |000010d0| 72 65 63 6f 72 64 20 6f | 6e 20 68 65 61 70 2e 0d |record o|n heap..| |000010e0| 20 2a 20 54 68 65 6e 20 | 66 72 65 65 73 20 75 70 | * Then |frees up| |000010f0| 20 74 68 65 20 57 43 42 | 20 61 73 73 6f 63 69 61 | the WCB| associa| |00001100| 74 65 64 20 77 69 74 68 | 20 74 68 65 20 77 69 6e |ted with| the win| |00001110| 64 6f 77 2e 0d 20 2a 2f | 0d 64 65 6c 65 74 65 5f |dow.. */|.delete_| |00001120| 77 69 6e 64 6f 77 28 64 | 70 29 0d 73 74 72 75 63 |window(d|p).struc| |00001130| 74 20 77 63 62 20 2a 64 | 70 3b 0d 09 7b 0d 09 0d |t wcb *d|p;..{...| |00001140| 09 69 66 28 64 70 2d 3e | 74 65 5f 68 61 6e 64 6c |.if(dp->|te_handl| |00001150| 65 20 21 3d 20 4e 55 4c | 4c 29 09 09 09 09 09 09 |e != NUL|L)......| |00001160| 2f 2f 20 49 66 20 65 64 | 69 74 20 77 69 6e 64 6f |// If ed|it windo| |00001170| 77 0d 09 09 7b 0d 09 09 | 23 54 45 44 69 73 70 6f |w...{...|#TEDispo| |00001180| 73 65 28 64 70 2d 3e 74 | 65 5f 68 61 6e 64 6c 65 |se(dp->t|e_handle| |00001190| 29 3b 09 09 09 09 09 2f | 2f 20 52 65 74 75 72 6e |);...../|/ Return| |000011a0| 20 54 45 20 72 65 63 6f | 72 64 20 74 6f 20 68 65 | TE reco|rd to he| |000011b0| 61 70 0d 09 09 64 70 2d | 3e 74 65 5f 68 61 6e 64 |ap...dp-|>te_hand| |000011c0| 6c 65 20 3d 20 4e 55 4c | 4c 3b 09 09 09 09 09 09 |le = NUL|L;......| |000011d0| 2f 2f 20 4d 61 72 6b 20 | 54 45 20 69 6e 61 63 74 |// Mark |TE inact| |000011e0| 69 76 65 20 69 6e 20 57 | 43 42 0d 09 09 7d 0d 09 |ive in W|CB...}..| |000011f0| 23 44 69 73 70 6f 73 65 | 57 69 6e 64 6f 77 28 64 |#Dispose|Window(d| |00001200| 70 2d 3e 77 70 29 3b 09 | 09 09 09 09 09 09 2f 2f |p->wp);.|......//| |00001210| 20 44 69 73 70 6f 73 65 | 20 6f 66 20 74 68 65 20 | Dispose| of the | |00001220| 77 69 6e 64 6f 77 0d 09 | 64 70 2d 3e 77 70 20 3d |window..|dp->wp =| |00001230| 20 4e 55 4c 4c 3b 09 09 | 09 09 09 09 09 09 09 09 | NULL;..|........| |00001240| 2f 2f 20 4d 61 72 6b 20 | 74 68 65 20 57 43 42 20 |// Mark |the WCB | |00001250| 66 72 65 65 0d 09 0d 09 | 2f 2f 20 41 64 64 20 61 |free....|// Add a| |00001260| 6e 79 74 68 69 6e 67 20 | 65 6c 73 65 20 68 65 72 |nything |else her| |00001270| 65 20 79 6f 75 20 6d 61 | 79 20 77 61 6e 74 20 77 |e you ma|y want w| |00001280| 68 65 6e 20 64 65 6c 65 | 74 69 6e 67 20 61 20 77 |hen dele|ting a w| |00001290| 69 6e 64 6f 77 0d 09 2f | 2f 20 73 75 63 68 20 61 |indow../|/ such a| |000012a0| 73 20 61 20 64 69 61 6c | 6f 67 20 6f 72 20 61 6c |s a dial|og or al| |000012b0| 65 72 74 20 69 6e 74 65 | 72 61 63 74 69 6f 6e 2e |ert inte|raction.| |000012c0| 0d 09 0d 09 6e 5f 77 69 | 6e 64 6f 77 73 2d 2d 3b |....n_wi|ndows--;| |000012d0| 09 09 09 09 09 09 09 09 | 09 09 2f 2f 20 43 6f 75 |........|..// Cou| |000012e0| 6e 74 20 69 74 20 67 6f | 6e 65 0d 09 7d 0d 0d 2f |nt it go|ne..}../| |000012f0| 2a 0d 20 2a 09 43 4f 4e | 54 45 4e 54 5f 43 4c 49 |*. *.CON|TENT_CLI| |00001300| 43 4b 28 29 20 2d 20 48 | 61 6e 64 6c 65 20 6d 6f |CK() - H|andle mo| |00001310| 75 73 65 20 64 6f 77 6e | 20 69 6e 20 77 69 6e 64 |use down| in wind| |00001320| 6f 77 20 63 6f 6e 74 65 | 6e 74 20 72 65 67 69 6f |ow conte|nt regio| |00001330| 6e 0d 20 2a 0d 20 2a 20 | 49 6e 70 75 74 73 20 28 |n. *. * |Inputs (| |00001340| 67 6c 6f 62 61 6c 20 76 | 61 72 69 61 62 6c 65 73 |global v|ariables| |00001350| 20 6f 6e 6c 79 29 0d 20 | 2a 09 09 64 77 70 09 09 | only). |*..dwp..| |00001360| 20 2d 2d 3e 09 57 43 42 | 20 6f 66 20 77 69 6e 64 | -->.WCB| of wind| |00001370| 6f 77 20 69 6e 20 77 68 | 69 63 68 20 6d 6f 75 73 |ow in wh|ich mous| |00001380| 65 20 77 61 73 20 63 6c | 69 63 6b 65 64 20 28 76 |e was cl|icked (v| |00001390| 65 72 69 66 69 65 64 29 | 0d 20 2a 09 09 45 76 65 |erified)|. *..Eve| |000013a0| 6e 74 2e 77 68 65 72 65 | 09 09 4d 6f 75 73 65 2d |nt.where|..Mouse-| |000013b0| 64 6f 77 6e 20 6c 6f 63 | 61 74 69 6f 6e 20 28 67 |down loc|ation (g| |000013c0| 6c 6f 62 61 6c 20 63 6f | 6f 72 64 69 6e 61 74 65 |lobal co|ordinate| |000013d0| 73 29 0d 20 2a 0d 20 2a | 20 4f 75 74 70 75 74 73 |s). *. *| Outputs| |000013e0| 3a 0d 20 2a 09 09 4e 6f | 20 65 78 70 6c 69 63 69 |:. *..No| explici| |000013f0| 74 20 6f 75 74 70 75 74 | 73 0d 20 2a 0d 20 2a 2f |t output|s. *. */| |00001400| 0d 63 6f 6e 74 65 6e 74 | 5f 63 6c 69 63 6b 28 29 |.content|_click()| |00001410| 0d 09 7b 0d 09 75 6e 73 | 69 67 6e 65 64 20 73 68 |..{..uns|igned sh| |00001420| 6f 72 74 20 65 78 74 3b | 0d 09 43 6f 6e 74 72 6f |ort ext;|..Contro| |00001430| 6c 48 61 6e 64 6c 65 20 | 63 68 3b 0d 09 75 6e 73 |lHandle |ch;..uns| |00001440| 69 67 6e 65 64 20 73 68 | 6f 72 74 20 70 61 72 74 |igned sh|ort part| |00001450| 3b 0d 09 6c 6f 6e 67 20 | 66 6f 6f 3b 0d 09 52 65 |;..long |foo;..Re| |00001460| 63 74 20 2a 5f 76 72 3b | 0d 09 69 6e 74 20 73 63 |ct *_vr;|..int sc| |00001470| 72 6f 6c 6c 5f 75 70 28 | 29 3b 0d 09 69 6e 74 20 |roll_up(|);..int | |00001480| 73 63 72 6f 6c 6c 5f 64 | 6f 77 6e 28 29 3b 0d 09 |scroll_d|own();..| |00001490| 0d 09 2f 2f 0d 09 2f 2f | 20 4d 6f 75 73 65 2d 64 |..//..//| Mouse-d| |000014a0| 6f 77 6e 20 69 6e 20 73 | 63 72 61 77 6c 20 77 69 |own in s|crawl wi| |000014b0| 6e 64 6f 77 20 63 68 61 | 6e 67 65 73 20 74 68 65 |ndow cha|nges the| |000014c0| 20 22 6f 6c 64 22 20 70 | 6f 73 69 74 69 6f 6e 0d | "old" p|osition.| |000014d0| 09 2f 2f 20 74 6f 20 74 | 68 65 20 63 75 72 72 65 |.// to t|he curre| |000014e0| 6e 74 20 70 6f 73 69 74 | 69 6f 6e 20 62 65 66 6f |nt posit|ion befo| |000014f0| 72 65 20 61 6c 6c 6f 77 | 69 6e 67 20 64 72 61 77 |re allow|ing draw| |00001500| 69 6e 67 2e 20 20 54 68 | 65 6e 20 0d 09 2f 2f 20 |ing. Th|en ..// | |00001510| 69 74 20 74 75 72 6e 73 | 20 6f 6e 20 74 68 65 20 |it turns| on the | |00001520| 70 65 6e 2d 64 6f 77 6e | 20 66 6c 61 67 2e 0d 09 |pen-down| flag...| |00001530| 2f 2f 0d 09 69 66 28 64 | 77 70 2d 3e 74 65 5f 68 |//..if(d|wp->te_h| |00001540| 61 6e 64 6c 65 20 3d 3d | 20 4e 55 4c 4c 29 09 09 |andle ==| NULL)..| |00001550| 09 09 09 2f 2f 20 49 66 | 20 74 68 69 73 20 69 73 |...// If| this is| |00001560| 20 61 20 22 73 63 72 61 | 77 6c 22 20 77 69 6e 64 | a "scra|wl" wind| |00001570| 6f 77 0d 09 09 7b 0d 09 | 09 23 47 65 74 4d 6f 75 |ow...{..|.#GetMou| |00001580| 73 65 28 26 70 6f 6c 64 | 29 3b 0d 09 09 70 65 6e |se(&pold|);...pen| |00001590| 5f 64 6f 77 6e 20 3d 20 | 54 52 55 45 3b 0d 09 09 |_down = |TRUE;...| |000015a0| 72 65 74 75 72 6e 28 30 | 29 3b 0d 09 09 7d 0d 09 |return(0|);...}..| |000015b0| 0d 09 2f 2f 0d 09 2f 2f | 20 57 65 20 68 61 76 65 |..//..//| We have| |000015c0| 20 61 20 6d 6f 75 73 65 | 2d 64 6f 77 6e 20 69 6e | a mouse|-down in| |000015d0| 20 63 6f 6e 74 65 6e 74 | 20 6f 66 20 61 6e 20 65 | content| of an e| |000015e0| 64 69 74 20 77 69 6e 64 | 6f 77 2e 0d 09 2f 2f 0d |dit wind|ow...//.| |000015f0| 09 2f 2f 20 49 66 20 69 | 74 27 73 20 69 6e 20 74 |.// If i|t's in t| |00001600| 68 65 20 76 69 65 77 52 | 65 63 74 2c 20 64 6f 20 |he viewR|ect, do | |00001610| 74 68 65 20 54 45 43 6c | 69 63 6b 2e 20 20 4f 74 |the TECl|ick. Ot| |00001620| 68 65 72 77 69 73 65 2c | 20 68 61 6e 64 6c 65 0d |herwise,| handle.| |00001630| 09 2f 2f 20 74 68 65 20 | 63 6c 69 63 6b 20 69 6e |.// the |click in| |00001640| 20 61 20 63 6f 6e 74 72 | 6f 6c 2e 0d 09 2f 2f 0d | a contr|ol...//.| |00001650| 09 23 47 6c 6f 62 61 6c | 54 6f 4c 6f 63 61 6c 28 |.#Global|ToLocal(| |00001660| 26 45 76 65 6e 74 2e 77 | 68 65 72 65 29 3b 09 09 |&Event.w|here);..| |00001670| 09 09 2f 2f 20 43 6f 6e | 76 65 72 74 20 63 6f 6f |..// Con|vert coo| |00001680| 72 64 69 6e 61 74 65 73 | 20 74 6f 20 6c 6f 63 61 |rdinates| to loca| |00001690| 6c 0d 09 66 6f 6f 20 3d | 20 23 50 74 49 6e 52 65 |l..foo =| #PtInRe| |000016a0| 63 74 28 26 45 76 65 6e | 74 2e 77 68 65 72 65 2c |ct(&Even|t.where,| |000016b0| 20 26 28 28 2a 28 64 77 | 70 2d 3e 74 65 5f 68 61 | &((*(dw|p->te_ha| |000016c0| 6e 64 6c 65 29 29 2d 3e | 76 69 65 77 52 65 63 74 |ndle))->|viewRect| |000016d0| 29 29 3b 0d 09 69 66 28 | 66 6f 6f 29 0d 09 09 23 |));..if(|foo)...#| |000016e0| 54 45 43 6c 69 63 6b 28 | 26 45 76 65 6e 74 2e 77 |TEClick(|&Event.w| |000016f0| 68 65 72 65 2c 20 30 2c | 20 64 77 70 2d 3e 74 65 |here, 0,| dwp->te| |00001700| 5f 68 61 6e 64 6c 65 29 | 3b 20 2f 2f 20 30 20 73 |_handle)|; // 0 s| |00001710| 68 6f 75 6c 64 20 62 65 | 20 22 65 78 74 22 0d 09 |hould be| "ext"..| |00001720| 65 6c 73 65 0d 09 09 7b | 09 09 09 09 09 09 09 09 |else...{|........| |00001730| 09 09 09 09 2f 2f 20 49 | 6e 20 63 6f 6e 74 72 6f |....// I|n contro| |00001740| 6c 0d 09 09 70 61 72 74 | 20 3d 20 28 73 68 6f 72 |l...part| = (shor| |00001750| 74 29 23 46 69 6e 64 43 | 6f 6e 74 72 6f 6c 28 26 |t)#FindC|ontrol(&| |00001760| 45 76 65 6e 74 2e 77 68 | 65 72 65 2c 20 45 76 57 |Event.wh|ere, EvW| |00001770| 69 6e 64 6f 77 2c 20 26 | 63 68 29 3b 0d 09 09 73 |indow, &|ch);...s| |00001780| 77 69 74 63 68 28 70 61 | 72 74 29 0d 09 09 09 7b |witch(pa|rt)....{| |00001790| 0d 09 09 09 63 61 73 65 | 20 69 6e 55 70 42 75 74 |....case| inUpBut| |000017a0| 74 6f 6e 3a 0d 09 09 09 | 09 23 54 72 61 63 6b 43 |ton:....|.#TrackC| |000017b0| 6f 6e 74 72 6f 6c 28 63 | 68 2c 20 26 45 76 65 6e |ontrol(c|h, &Even| |000017c0| 74 2e 77 68 65 72 65 2c | 20 73 63 72 6f 6c 6c 5f |t.where,| scroll_| |000017d0| 75 70 29 3b 0d 09 09 09 | 09 62 72 65 61 6b 3b 0d |up);....|.break;.| |000017e0| 09 09 09 09 0d 09 09 09 | 63 61 73 65 20 69 6e 44 |........|case inD| |000017f0| 6f 77 6e 42 75 74 74 6f | 6e 3a 0d 09 09 09 09 23 |ownButto|n:.....#| |00001800| 54 72 61 63 6b 43 6f 6e | 74 72 6f 6c 28 63 68 2c |TrackCon|trol(ch,| |00001810| 20 26 45 76 65 6e 74 2e | 77 68 65 72 65 2c 20 73 | &Event.|where, s| |00001820| 63 72 6f 6c 6c 5f 64 6f | 77 6e 29 3b 0d 09 09 09 |croll_do|wn);....| |00001830| 09 62 72 65 61 6b 3b 0d | 09 09 09 09 0d 09 09 09 |.break;.|........| |00001840| 63 61 73 65 20 69 6e 50 | 61 67 65 55 70 3a 0d 09 |case inP|ageUp:..| |00001850| 09 09 09 70 61 67 65 5f | 73 63 72 6f 6c 6c 28 70 |...page_|scroll(p| |00001860| 61 72 74 2c 20 63 68 2c | 20 2d 31 29 3b 0d 09 09 |art, ch,| -1);...| |00001870| 09 09 62 72 65 61 6b 3b | 0d 09 09 09 09 0d 09 09 |..break;|........| |00001880| 09 63 61 73 65 20 69 6e | 50 61 67 65 44 6f 77 6e |.case in|PageDown| |00001890| 3a 0d 09 09 09 09 70 61 | 67 65 5f 73 63 72 6f 6c |:.....pa|ge_scrol| |000018a0| 6c 28 70 61 72 74 2c 20 | 63 68 2c 20 31 29 3b 0d |l(part, |ch, 1);.| |000018b0| 09 09 09 09 62 72 65 61 | 6b 3b 0d 09 09 09 09 0d |....brea|k;......| |000018c0| 09 09 09 63 61 73 65 20 | 69 6e 54 68 75 6d 62 3a |...case |inThumb:| |000018d0| 0d 09 09 09 09 23 54 72 | 61 63 6b 43 6f 6e 74 72 |.....#Tr|ackContr| |000018e0| 6f 6c 28 63 68 2c 20 26 | 45 76 65 6e 74 2e 77 68 |ol(ch, &|Event.wh| |000018f0| 65 72 65 2c 20 30 29 3b | 0d 09 09 09 09 65 64 69 |ere, 0);|.....edi| |00001900| 74 5f 73 63 72 6f 6c 6c | 28 29 3b 0d 09 09 09 7d |t_scroll|();....}| |00001910| 0d 09 09 7d 0d 09 7d 0d | 0d 2f 2a 0d 20 2a 20 43 |...}..}.|./*. * C| |00001920| 4f 4e 54 45 4e 54 5f 52 | 45 4c 45 41 53 45 28 29 |ONTENT_R|ELEASE()| |00001930| 20 2d 20 52 65 6c 65 61 | 73 65 20 6f 66 20 6d 6f | - Relea|se of mo| |00001940| 75 73 65 20 69 6e 20 63 | 6f 6e 74 65 6e 74 20 72 |use in c|ontent r| |00001950| 65 67 69 6f 6e 0d 20 2a | 0d 20 2a 20 4f 6e 6c 79 |egion. *|. * Only| |00001960| 20 69 66 20 73 63 72 61 | 77 6c 20 77 69 6e 64 6f | if scra|wl windo| |00001970| 77 2c 20 74 6f 67 67 6c | 65 20 74 68 65 20 64 72 |w, toggl|e the dr| |00001980| 61 77 2f 6d 6f 76 65 20 | 66 6c 61 67 0d 20 2a 2f |aw/move |flag. */| |00001990| 0d 63 6f 6e 74 65 6e 74 | 5f 72 65 6c 65 61 73 65 |.content|_release| |000019a0| 28 29 0d 09 7b 0d 09 69 | 66 28 64 77 70 2d 3e 74 |()..{..i|f(dwp->t| |000019b0| 65 5f 68 61 6e 64 6c 65 | 20 3d 3d 20 4e 55 4c 4c |e_handle| == NULL| |000019c0| 29 0d 09 09 70 65 6e 5f | 64 6f 77 6e 20 3d 20 46 |)...pen_|down = F| |000019d0| 41 4c 53 45 3b 0d 09 72 | 65 74 75 72 6e 28 30 29 |ALSE;..r|eturn(0)| |000019e0| 3b 0d 09 7d 0d 0d 2f 2a | 0d 20 2a 20 44 4f 5f 53 |;..}../*|. * DO_S| |000019f0| 43 52 41 57 4c 28 29 20 | 2d 20 48 61 6e 64 6c 65 |CRAWL() |- Handle| |00001a00| 20 73 63 72 61 77 6c 69 | 6e 67 0d 20 2a 0d 20 2a | scrawli|ng. *. *| |00001a10| 20 54 68 69 73 20 69 73 | 20 61 63 74 75 61 6c 6c | This is| actuall| |00001a20| 79 20 63 61 6c 6c 65 64 | 20 66 72 6f 20 74 68 65 |y called| fro the| |00001a30| 20 63 75 72 73 6f 72 20 | 68 61 6e 64 6c 69 6e 67 | cursor |handling| |00001a40| 0d 20 2a 20 72 6f 75 74 | 69 6e 65 2c 20 73 69 6e |. * rout|ine, sin| |00001a50| 63 65 20 69 74 20 69 73 | 20 6e 65 65 64 65 64 20 |ce it is| needed | |00001a60| 77 68 65 74 68 65 72 20 | 6f 72 20 6e 6f 74 20 74 |whether |or not t| |00001a70| 68 65 20 6d 6f 75 73 65 | 0d 20 2a 20 69 73 20 64 |he mouse|. * is d| |00001a80| 6f 77 6e 2e 0d 20 2a 2f | 0d 64 6f 5f 73 63 72 61 |own.. */|.do_scra| |00001a90| 77 6c 28 29 0d 09 7b 0d | 09 50 6f 69 6e 74 20 70 |wl()..{.|.Point p| |00001aa0| 3b 0d 09 0d 09 23 47 65 | 74 4d 6f 75 73 65 28 26 |;....#Ge|tMouse(&| |00001ab0| 70 29 3b 0d 20 20 20 69 | 66 28 28 70 6f 6c 64 2e |p);. i|f((pold.| |00001ac0| 76 68 5b 30 5d 20 3d 3d | 20 70 2e 76 68 5b 30 5d |vh[0] ==| p.vh[0]| |00001ad0| 29 20 26 26 20 28 70 6f | 6c 64 2e 76 68 5b 31 5d |) && (po|ld.vh[1]| |00001ae0| 20 3d 3d 20 70 2e 76 68 | 5b 31 5d 29 29 0d 20 20 | == p.vh|[1])). | |00001af0| 20 20 20 20 72 65 74 75 | 72 6e 3b 0d 09 70 6f 6c | retu|rn;..pol| |00001b00| 64 2e 76 68 5b 30 5d 20 | 3d 20 70 2e 76 68 5b 30 |d.vh[0] |= p.vh[0| |00001b10| 5d 3b 0d 09 70 6f 6c 64 | 2e 76 68 5b 31 5d 20 3d |];..pold|.vh[1] =| |00001b20| 20 70 2e 76 68 5b 31 5d | 3b 0d 20 20 20 69 66 28 | p.vh[1]|;. if(| |00001b30| 70 65 6e 5f 64 6f 77 6e | 29 0d 20 20 20 20 20 20 |pen_down|). | |00001b40| 23 4c 69 6e 65 54 6f 28 | 70 2e 76 68 5b 31 5d 2c |#LineTo(|p.vh[1],| |00001b50| 70 2e 76 68 5b 30 5d 29 | 3b 0d 20 20 20 65 6c 73 |p.vh[0])|;. els| |00001b60| 65 0d 20 20 20 20 20 20 | 23 4d 6f 76 65 54 6f 28 |e. |#MoveTo(| |00001b70| 70 2e 76 68 5b 31 5d 2c | 70 2e 76 68 5b 30 5d 29 |p.vh[1],|p.vh[0])| |00001b80| 3b 0d 09 7d 0d 0d 2f 2a | 0d 20 2a 20 41 43 54 5f |;..}../*|. * ACT_| |00001b90| 57 49 4e 44 28 29 20 2d | 20 44 6f 20 61 63 74 69 |WIND() -| Do acti| |00001ba0| 76 61 74 65 20 73 74 75 | 66 66 20 66 6f 72 20 77 |vate stu|ff for w| |00001bb0| 69 6e 64 6f 77 0d 20 2a | 2f 0d 61 63 74 5f 77 69 |indow. *|/.act_wi| |00001bc0| 6e 64 28 77 70 29 0d 57 | 69 6e 64 6f 77 50 74 72 |nd(wp).W|indowPtr| |00001bd0| 20 77 70 3b 09 09 09 09 | 09 09 09 09 09 09 2f 2f | wp;....|......//| |00001be0| 20 57 69 6e 64 6f 77 20 | 74 6f 20 61 63 74 69 76 | Window |to activ| |00001bf0| 61 74 65 0d 09 7b 0d 09 | 73 74 72 75 63 74 20 77 |ate..{..|struct w| |00001c00| 63 62 20 2a 66 69 6e 64 | 5f 77 63 62 28 29 3b 0d |cb *find|_wcb();.| |00001c10| 09 73 74 72 75 63 74 20 | 77 63 62 20 2a 64 70 3b |.struct |wcb *dp;| |00001c20| 0d 09 0d 09 69 66 28 28 | 64 70 20 3d 20 66 69 6e |....if((|dp = fin| |00001c30| 64 5f 77 63 62 28 77 70 | 29 29 20 3d 3d 20 4e 55 |d_wcb(wp|)) == NU| |00001c40| 4c 4c 29 09 09 09 2f 2f | 20 4d 61 6b 65 20 74 68 |LL)...//| Make th| |00001c50| 69 73 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 0d |is the c|urrent .| |00001c60| 09 09 72 65 74 75 72 6e | 28 30 29 3b 09 09 09 09 |..return|(0);....| |00001c70| 09 09 09 09 09 2f 2f 20 | 4e 6f 74 20 6f 75 72 73 |.....// |Not ours| |00001c80| 2c 20 69 67 6e 6f 72 65 | 20 74 68 65 20 65 76 65 |, ignore| the eve| |00001c90| 6e 74 0d 0d 09 23 53 65 | 74 50 6f 72 74 28 77 70 |nt...#Se|tPort(wp| |00001ca0| 29 3b 09 09 09 09 09 09 | 09 09 09 2f 2f 20 54 68 |);......|...// Th| |00001cb0| 69 73 20 69 73 20 63 75 | 72 72 65 6e 74 20 67 72 |is is cu|rrent gr| |00001cc0| 61 66 50 6f 72 74 0d 09 | 0d 09 69 66 28 64 70 2d |afPort..|..if(dp-| |00001cd0| 3e 74 65 5f 68 61 6e 64 | 6c 65 20 3d 3d 20 4e 55 |>te_hand|le == NU| |00001ce0| 4c 4c 29 09 09 09 09 09 | 2f 2f 20 49 66 20 69 74 |LL).....|// If it| |00001cf0| 27 73 20 61 20 73 63 72 | 61 77 6c 20 77 69 6e 64 |'s a scr|awl wind| |00001d00| 6f 77 0d 09 09 7b 0d 09 | 09 2f 2f 20 4e 6f 74 68 |ow...{..|.// Noth| |00001d10| 69 6e 67 20 66 6f 72 20 | 6e 6f 77 0d 09 09 7d 0d |ing for |now...}.| |00001d20| 09 65 6c 73 65 09 09 09 | 09 09 09 09 09 09 09 09 |.else...|........| |00001d30| 09 2f 2f 20 44 6f 20 65 | 64 69 74 20 77 69 6e 64 |.// Do e|dit wind| |00001d40| 6f 77 0d 09 09 7b 0d 09 | 09 23 44 72 61 77 47 72 |ow...{..|.#DrawGr| |00001d50| 6f 77 49 63 6f 6e 28 77 | 70 29 3b 09 09 09 09 09 |owIcon(w|p);.....| |00001d60| 09 2f 2f 20 44 72 61 77 | 20 61 63 74 69 76 61 74 |.// Draw| activat| |00001d70| 65 64 20 76 65 72 73 69 | 6f 6e 0d 09 09 23 54 45 |ed versi|on...#TE| |00001d80| 41 63 74 69 76 61 74 65 | 28 64 70 2d 3e 74 65 5f |Activate|(dp->te_| |00001d90| 68 61 6e 64 6c 65 29 3b | 09 09 09 2f 2f 20 54 75 |handle);|...// Tu| |00001da0| 72 6e 20 6f 6e 20 74 65 | 78 74 20 65 64 69 74 69 |rn on te|xt editi| |00001db0| 6e 67 0d 09 09 23 53 68 | 6f 77 43 6f 6e 74 72 6f |ng...#Sh|owContro| |00001dc0| 6c 28 64 70 2d 3e 76 73 | 5f 68 61 6e 64 6c 65 29 |l(dp->vs|_handle)| |00001dd0| 3b 09 09 09 2f 2f 20 44 | 72 61 77 20 69 6e 20 73 |;...// D|raw in s| |00001de0| 63 72 6f 6c 6c 65 72 73 | 0d 09 09 23 53 68 6f 77 |crollers|...#Show| |00001df0| 43 6f 6e 74 72 6f 6c 28 | 64 70 2d 3e 68 73 5f 68 |Control(|dp->hs_h| |00001e00| 61 6e 64 6c 65 29 3b 0d | 09 09 7d 0d 09 64 77 70 |andle);.|..}..dwp| |00001e10| 20 3d 20 64 70 3b 09 09 | 09 09 09 09 09 09 09 09 | = dp;..|........| |00001e20| 2f 2f 20 53 65 74 20 67 | 6c 6f 62 61 6c 20 70 6f |// Set g|lobal po| |00001e30| 69 6e 74 65 72 0d 09 7d | 0d 0d 2f 2a 0d 20 2a 20 |inter..}|../*. * | |00001e40| 44 45 41 43 54 5f 57 49 | 4e 44 28 29 20 2d 20 44 |DEACT_WI|ND() - D| |00001e50| 6f 20 64 65 61 63 74 69 | 76 61 74 69 6f 6e 20 73 |o deacti|vation s| |00001e60| 74 75 66 66 20 66 6f 72 | 20 77 69 6e 64 6f 77 20 |tuff for| window | |00001e70| 0d 20 2a 2f 0d 64 65 61 | 63 74 5f 77 69 6e 64 28 |. */.dea|ct_wind(| |00001e80| 77 70 29 0d 57 69 6e 64 | 6f 77 50 74 72 20 77 70 |wp).Wind|owPtr wp| |00001e90| 3b 0d 09 7b 0d 09 73 74 | 72 75 63 74 20 77 63 62 |;..{..st|ruct wcb| |00001ea0| 20 2a 64 70 3b 0d 09 73 | 74 72 75 63 74 20 77 63 | *dp;..s|truct wc| |00001eb0| 62 20 2a 66 69 6e 64 5f | 77 63 62 28 29 3b 0d 09 |b *find_|wcb();..| |00001ec0| 0d 09 69 66 28 28 64 70 | 20 3d 20 66 69 6e 64 5f |..if((dp| = find_| |00001ed0| 77 63 62 28 77 70 29 29 | 20 3d 3d 20 4e 55 4c 4c |wcb(wp))| == NULL| |00001ee0| 29 09 09 09 2f 2f 20 46 | 69 6e 64 20 6f 75 72 20 |)...// F|ind our | |00001ef0| 57 43 42 20 66 6f 72 20 | 74 68 69 73 20 77 69 6e |WCB for |this win| |00001f00| 64 6f 77 0d 09 09 72 65 | 74 75 72 6e 28 30 29 3b |dow...re|turn(0);| |00001f10| 09 09 09 09 09 09 09 09 | 09 2f 2f 20 4f 6f 70 73 |........|.// Oops| |00001f20| 2c 20 6e 6f 74 20 6f 75 | 72 73 0d 09 09 0d 09 23 |, not ou|rs.....#| |00001f30| 53 65 74 50 6f 72 74 28 | 77 70 29 3b 09 09 09 09 |SetPort(|wp);....| |00001f40| 09 09 09 09 09 2f 2f 20 | 54 68 69 73 20 69 73 20 |.....// |This is | |00001f50| 63 75 72 72 65 6e 74 20 | 67 72 61 66 50 6f 72 74 |current |grafPort| |00001f60| 0d 09 0d 09 69 66 28 64 | 70 2d 3e 74 65 5f 68 61 |....if(d|p->te_ha| |00001f70| 6e 64 6c 65 20 3d 3d 20 | 4e 55 4c 4c 29 09 09 09 |ndle == |NULL)...| |00001f80| 09 09 2f 2f 20 49 66 20 | 69 74 27 73 20 61 20 73 |..// If |it's a s| |00001f90| 63 72 61 77 6c 20 77 69 | 6e 64 6f 77 0d 09 09 7b |crawl wi|ndow...{| |00001fa0| 0d 09 09 72 65 74 75 72 | 6e 28 30 29 3b 0d 09 09 |...retur|n(0);...| |00001fb0| 7d 0d 09 65 6c 73 65 09 | 09 09 09 09 09 09 09 09 |}..else.|........| |00001fc0| 09 09 09 2f 2f 20 44 6f | 20 65 64 69 74 20 77 69 |...// Do| edit wi| |00001fd0| 6e 64 6f 77 0d 09 09 7b | 0d 09 09 23 44 72 61 77 |ndow...{|...#Draw| |00001fe0| 47 72 6f 77 49 63 6f 6e | 28 77 70 29 3b 09 09 09 |GrowIcon|(wp);...| |00001ff0| 09 09 09 2f 2f 20 44 72 | 61 77 20 64 65 61 63 74 |...// Dr|aw deact| |00002000| 69 76 61 74 65 64 20 76 | 65 72 73 69 6f 6e 0d 09 |ivated v|ersion..| |00002010| 09 23 54 45 44 65 61 63 | 74 69 76 61 74 65 28 64 |.#TEDeac|tivate(d| |00002020| 70 2d 3e 74 65 5f 68 61 | 6e 64 6c 65 29 3b 09 09 |p->te_ha|ndle);..| |00002030| 09 2f 2f 20 54 75 72 6e | 20 6f 66 66 20 74 65 78 |.// Turn| off tex| |00002040| 74 20 65 64 69 74 69 6e | 67 0d 09 09 23 48 69 64 |t editin|g...#Hid| |00002050| 65 43 6f 6e 74 72 6f 6c | 28 64 70 2d 3e 76 73 5f |eControl|(dp->vs_| |00002060| 68 61 6e 64 6c 65 29 3b | 09 09 09 2f 2f 20 48 69 |handle);|...// Hi| |00002070| 64 65 20 73 63 72 6f 6c | 6c 65 72 73 0d 09 09 23 |de scrol|lers...#| |00002080| 48 69 64 65 43 6f 6e 74 | 72 6f 6c 28 64 70 2d 3e |HideCont|rol(dp->| |00002090| 68 73 5f 68 61 6e 64 6c | 65 29 3b 0d 09 09 7d 0d |hs_handl|e);...}.| |000020a0| 09 64 77 70 20 3d 20 4e | 55 4c 4c 3b 09 09 09 09 |.dwp = N|ULL;....| |000020b0| 09 09 09 09 09 09 2f 2f | 20 43 6c 65 61 72 20 6d |......//| Clear m| |000020c0| 61 73 74 65 72 20 70 6f | 69 6e 74 65 72 0d 09 7d |aster po|inter..}| |000020d0| 0d 09 0d 2f 2a 0d 20 2a | 20 55 50 44 5f 57 49 4e |.../*. *| UPD_WIN| |000020e0| 44 28 29 20 2d 20 55 70 | 64 61 74 65 20 77 69 6e |D() - Up|date win| |000020f0| 64 6f 77 0d 20 2a 0d 20 | 2a 20 4e 6f 74 65 20 74 |dow. *. |* Note t| |00002100| 68 61 74 20 74 68 69 73 | 20 6d 61 79 20 62 65 20 |hat this| may be | |00002110| 63 61 6c 6c 65 64 20 77 | 68 65 74 68 65 72 20 6f |called w|hether o| |00002120| 72 20 6e 6f 74 20 74 68 | 65 20 77 69 6e 64 6f 77 |r not th|e window| |00002130| 0d 20 2a 20 69 73 20 74 | 68 65 20 66 72 6f 6e 74 |. * is t|he front| |00002140| 20 77 69 6e 64 6f 77 20 | 61 6e 64 2f 6f 72 20 61 | window |and/or a| |00002150| 63 74 69 76 65 2e 20 20 | 54 68 69 73 20 6d 75 73 |ctive. |This mus| |00002160| 74 20 6e 6f 74 20 63 68 | 61 6e 67 65 0d 20 2a 20 |t not ch|ange. * | |00002170| 6f 75 72 20 61 73 73 75 | 6d 70 74 69 6f 6e 73 20 |our assu|mptions | |00002180| 61 62 6f 75 74 20 74 68 | 65 20 66 72 6f 6e 74 20 |about th|e front | |00002190| 77 69 6e 64 6f 77 2e 0d | 20 2a 0d 20 2a 20 4d 6f |window..| *. * Mo| |000021a0| 72 65 20 69 6e 74 65 72 | 65 73 74 69 6e 67 20 69 |re inter|esting i| |000021b0| 73 20 74 68 65 20 66 61 | 63 74 20 74 68 61 74 20 |s the fa|ct that | |000021c0| 74 68 69 73 20 72 6f 75 | 74 69 6e 65 20 67 65 74 |this rou|tine get| |000021d0| 73 20 63 61 6c 6c 65 64 | 20 0d 20 2a 20 63 6f 6e |s called| . * con| |000021e0| 74 69 6e 75 6f 75 73 6c | 79 20 66 6f 72 20 65 61 |tinuousl|y for ea| |000021f0| 63 68 20 77 69 6e 64 6f | 77 2e 20 20 49 66 20 42 |ch windo|w. If B| |00002200| 65 67 69 6e 55 70 64 61 | 74 65 20 73 65 74 73 20 |eginUpda|te sets | |00002210| 74 68 65 20 76 69 73 52 | 67 6e 20 74 6f 20 0d 20 |the visR|gn to . | |00002220| 2a 20 61 6e 79 74 68 69 | 6e 67 20 62 75 74 20 74 |* anythi|ng but t| |00002230| 68 65 20 65 6d 70 74 79 | 20 72 65 67 69 6f 6e 2c |he empty| region,| |00002240| 20 73 6f 6d 65 74 68 69 | 6e 67 20 67 65 74 73 20 | somethi|ng gets | |00002250| 64 72 61 77 6e 2e 0d 20 | 2a 2f 0d 75 70 64 5f 77 |drawn.. |*/.upd_w| |00002260| 69 6e 64 28 77 70 29 0d | 57 69 6e 64 6f 77 50 74 |ind(wp).|WindowPt| |00002270| 72 20 77 70 3b 0d 09 7b | 0d 09 73 74 72 75 63 74 |r wp;..{|..struct| |00002280| 20 77 63 62 20 2a 66 69 | 6e 64 5f 77 63 62 28 29 | wcb *fi|nd_wcb()| |00002290| 3b 0d 09 73 74 72 75 63 | 74 20 77 63 62 20 2a 64 |;..struc|t wcb *d| |000022a0| 70 3b 0d 09 0d 09 0d 09 | 69 66 28 28 64 70 20 3d |p;......|if((dp =| |000022b0| 20 66 69 6e 64 5f 77 63 | 62 28 77 70 29 29 20 3d | find_wc|b(wp)) =| |000022c0| 3d 20 4e 55 4c 4c 29 09 | 09 09 2f 2f 20 47 65 74 |= NULL).|..// Get| |000022d0| 20 74 68 65 20 57 43 42 | 20 66 6f 72 20 74 68 69 | the WCB| for thi| |000022e0| 73 20 77 69 6e 64 6f 77 | 0d 09 09 72 65 74 75 72 |s window|...retur| |000022f0| 6e 28 30 29 3b 09 09 09 | 09 09 09 09 09 09 2f 2f |n(0);...|......//| |00002300| 20 28 6e 6f 74 20 6f 75 | 72 73 3f 3f 29 0d 09 0d | (not ou|rs??)...| |00002310| 09 23 42 65 67 69 6e 55 | 70 64 61 74 65 28 77 70 |.#BeginU|pdate(wp| |00002320| 29 3b 09 09 09 09 09 09 | 09 09 2f 2f 20 46 75 64 |);......|..// Fud| |00002330| 67 65 20 76 69 73 52 67 | 6e 20 74 6f 20 75 70 64 |ge visRg|n to upd| |00002340| 61 74 65 20 70 6f 72 74 | 69 6f 6e 0d 0d 09 23 53 |ate port|ion...#S| |00002350| 65 74 50 6f 72 74 28 77 | 70 29 3b 09 09 09 09 09 |etPort(w|p);.....| |00002360| 09 09 09 09 2f 2f 20 48 | 6f 6f 6b 20 75 70 20 74 |....// H|ook up t| |00002370| 6f 20 51 75 69 63 6b 44 | 72 61 77 0d 09 0d 09 69 |o QuickD|raw....i| |00002380| 66 28 64 70 2d 3e 74 65 | 5f 68 61 6e 64 6c 65 20 |f(dp->te|_handle | |00002390| 3d 3d 20 4e 55 4c 4c 29 | 09 09 09 09 09 2f 2f 20 |== NULL)|.....// | |000023a0| 49 66 20 69 74 27 73 20 | 61 20 73 63 72 61 77 6c |If it's |a scrawl| |000023b0| 20 77 69 6e 64 6f 77 0d | 09 09 23 45 72 61 73 65 | window.|..#Erase| |000023c0| 52 65 63 74 28 26 28 77 | 70 2d 3e 70 6f 72 74 52 |Rect(&(w|p->portR| |000023d0| 65 63 74 29 29 3b 20 09 | 09 09 2f 2f 20 4a 75 73 |ect)); .|..// Jus| |000023e0| 74 20 77 69 70 65 20 69 | 74 20 63 6c 65 61 6e 0d |t wipe i|t clean.| |000023f0| 09 65 6c 73 65 09 09 09 | 09 09 09 09 09 09 09 09 |.else...|........| |00002400| 09 2f 2f 20 44 6f 20 65 | 64 69 74 20 77 69 6e 64 |.// Do e|dit wind| |00002410| 6f 77 0d 09 09 7b 0d 09 | 09 23 44 72 61 77 47 72 |ow...{..|.#DrawGr| |00002420| 6f 77 49 63 6f 6e 28 77 | 70 29 3b 09 09 09 09 09 |owIcon(w|p);.....| |00002430| 09 2f 2f 20 44 72 61 77 | 20 74 68 65 20 67 72 6f |.// Draw| the gro| |00002440| 77 20 69 63 6f 6e 0d 09 | 09 23 44 72 61 77 43 6f |w icon..|.#DrawCo| |00002450| 6e 74 72 6f 6c 73 28 77 | 70 29 3b 09 09 09 09 09 |ntrols(w|p);.....| |00002460| 09 2f 2f 20 44 72 61 77 | 20 61 6c 6c 20 63 6f 6e |.// Draw| all con| |00002470| 74 72 6f 6c 73 0d 09 09 | 2f 2f 0d 09 09 2f 2f 20 |trols...|//...// | |00002480| 4e 6f 74 65 20 74 68 65 | 20 73 79 6e 74 61 78 20 |Note the| syntax | |00002490| 66 6f 72 20 61 64 64 72 | 65 73 73 69 6e 67 20 74 |for addr|essing t| |000024a0| 68 65 20 72 67 6e 42 62 | 6f 78 20 6f 66 20 74 68 |he rgnBb|ox of th| |000024b0| 65 20 77 69 6e 64 6f 77 | 27 73 0d 09 09 2f 2f 20 |e window|'s...// | |000024c0| 67 72 61 66 50 6f 72 74 | 27 73 20 76 69 73 52 67 |grafPort|'s visRg| |000024d0| 6e 2e 20 20 54 68 69 73 | 20 69 73 20 74 68 65 20 |n. This| is the | |000024e0| 72 65 63 6f 6d 6d 65 6e | 64 65 64 20 52 65 63 74 |recommen|ded Rect| |000024f0| 20 74 6f 20 75 73 65 0d | 09 09 2f 2f 20 77 68 65 | to use.|..// whe| |00002500| 6e 20 63 61 6c 6c 69 6e | 67 20 54 45 55 70 64 61 |n callin|g TEUpda| |00002510| 74 65 2e 20 20 57 68 6f | 20 73 61 79 73 20 43 20 |te. Who| says C | |00002520| 69 73 20 65 61 73 79 20 | 74 6f 20 72 65 61 64 3f |is easy |to read?| |00002530| 0d 09 09 2f 2f 0d 09 09 | 23 54 45 55 70 64 61 74 |...//...|#TEUpdat| |00002540| 65 28 26 28 28 2a 28 77 | 70 2d 3e 76 69 73 52 67 |e(&((*(w|p->visRg| |00002550| 6e 29 29 2d 3e 72 67 6e | 42 42 6f 78 29 2c 20 64 |n))->rgn|BBox), d| |00002560| 70 2d 3e 74 65 5f 68 61 | 6e 64 6c 65 29 3b 0d 09 |p->te_ha|ndle);..| |00002570| 09 7d 0d 09 23 45 6e 64 | 55 70 64 61 74 65 28 77 |.}..#End|Update(w| |00002580| 70 29 3b 09 09 09 09 09 | 09 09 09 2f 2f 20 52 65 |p);.....|...// Re| |00002590| 73 74 6f 72 65 20 76 69 | 73 52 67 6e 0d 09 7d 0d |store vi|sRgn..}.| |000025a0| 0d 2f 2a 0d 20 2a 20 44 | 4f 5f 47 52 4f 57 28 29 |./*. * D|O_GROW()| |000025b0| 20 2d 20 48 61 6e 64 6c | 65 20 67 72 6f 77 2f 72 | - Handl|e grow/r| |000025c0| 65 73 69 7a 65 20 6f 70 | 65 72 61 74 69 6f 6e 73 |esize op|erations| |000025d0| 20 6f 6e 20 77 69 6e 64 | 6f 77 0d 20 2a 0d 20 2a | on wind|ow. *. *| |000025e0| 20 49 6e 70 75 74 73 3a | 0d 20 2a 09 09 28 47 29 | Inputs:|. *..(G)| |000025f0| 09 64 77 70 20 2d 2d 3e | 20 09 57 43 42 20 6f 66 |.dwp -->| .WCB of| |00002600| 20 63 75 72 72 65 6e 74 | 20 77 69 6e 64 6f 77 0d | current| window.| |00002610| 20 2a 09 09 28 47 29 09 | 45 76 65 6e 74 09 09 45 | *..(G).|Event..E| |00002620| 76 65 6e 74 20 72 65 63 | 6f 72 64 20 66 6f 72 20 |vent rec|ord for | |00002630| 63 6c 69 63 6b 20 69 6e | 20 67 72 6f 77 20 62 6f |click in| grow bo| |00002640| 78 0d 20 2a 0d 20 2a 20 | 4f 75 74 70 75 74 73 3a |x. *. * |Outputs:| |00002650| 0d 20 2a 09 09 6e 6f 6e | 65 0d 20 2a 0d 20 2a 20 |. *..non|e. *. * | |00002660| 4d 75 63 68 20 6f 66 20 | 74 68 69 73 20 63 6f 64 |Much of |this cod| |00002670| 65 20 69 73 20 73 6b 69 | 70 70 65 64 20 66 6f 72 |e is ski|pped for| |00002680| 20 61 20 73 63 72 61 77 | 6c 20 77 69 6e 64 6f 77 | a scraw|l window| |00002690| 2e 20 20 54 68 65 20 6f | 70 65 72 61 74 69 6f 6e |. The o|peration| |000026a0| 73 0d 20 2a 20 64 6f 6e | 65 20 68 65 72 65 20 67 |s. * don|e here g| |000026b0| 65 6e 65 72 61 74 65 20 | 61 6e 20 75 70 64 61 74 |enerate |an updat| |000026c0| 65 20 65 76 65 6e 74 20 | 66 6f 72 20 74 68 65 20 |e event |for the | |000026d0| 77 69 6e 64 6f 77 2e 20 | 20 4b 65 65 70 20 74 68 |window. | Keep th| |000026e0| 69 73 20 69 6e 20 6d 69 | 6e 64 0d 20 2a 20 61 6e |is in mi|nd. * an| |000026f0| 64 20 74 72 79 20 74 6f | 20 61 76 6f 69 64 20 72 |d try to| avoid r| |00002700| 65 64 75 6e 64 61 6e 74 | 20 64 72 61 77 69 6e 67 |edundant| drawing| |00002710| 2e 20 20 41 62 6f 76 65 | 20 61 6c 6c 20 2d 2d 20 |. Above| all -- | |00002720| 61 76 6f 69 64 20 72 65 | 64 72 61 77 69 6e 67 20 |avoid re|drawing | |00002730| 74 68 65 0d 20 2a 20 65 | 6e 74 69 72 65 20 77 69 |the. * e|ntire wi| |00002740| 6e 64 6f 77 20 2e 2e 2e | 20 69 74 27 73 20 6a 75 |ndow ...| it's ju| |00002750| 73 74 20 74 6f 6f 20 63 | 72 75 64 65 20 66 6f 72 |st too c|rude for| |00002760| 20 74 68 65 20 4d 61 63 | 2e 0d 20 2a 2f 0d 64 6f | the Mac|.. */.do| |00002770| 5f 67 72 6f 77 28 29 0d | 09 7b 0d 09 52 65 63 74 |_grow().|.{..Rect| |00002780| 20 2a 70 72 3b 0d 09 52 | 65 63 74 20 74 65 6d 70 | *pr;..R|ect temp| |00002790| 5f 72 65 63 74 3b 0d 09 | 75 6e 73 69 67 6e 65 64 |_rect;..|unsigned| |000027a0| 20 6c 6f 6e 67 20 67 72 | 6f 77 5f 72 65 73 75 6c | long gr|ow_resul| |000027b0| 74 3b 0d 09 75 6e 73 69 | 67 6e 65 64 20 73 68 6f |t;..unsi|gned sho| |000027c0| 72 74 20 68 65 69 67 68 | 74 2c 20 77 69 64 74 68 |rt heigh|t, width| |000027d0| 3b 0d 09 0d 09 2f 2f 0d | 09 2f 2f 20 44 6f 20 74 |;....//.|.// Do t| |000027e0| 68 65 20 67 72 6f 77 20 | 6f 70 65 72 61 74 69 6f |he grow |operatio| |000027f0| 6e 20 77 68 69 6c 65 20 | 6d 6f 75 73 65 20 69 73 |n while |mouse is| |00002800| 20 68 65 6c 64 20 64 6f | 77 6e 2e 20 20 57 68 65 | held do|wn. Whe| |00002810| 6e 20 69 74 20 69 73 0d | 09 2f 2f 20 72 65 6c 65 |n it is.|.// rele| |00002820| 61 73 65 64 2c 20 74 68 | 65 20 6e 65 77 20 68 65 |ased, th|e new he| |00002830| 69 67 68 74 20 61 6e 64 | 20 77 69 64 74 68 20 6f |ight and| width o| |00002840| 66 20 74 68 65 20 77 69 | 6e 64 6f 77 20 61 72 65 |f the wi|ndow are| |00002850| 20 72 65 74 75 72 6e 65 | 64 0d 09 2f 2f 20 70 61 | returne|d..// pa| |00002860| 63 6b 65 64 20 69 6e 20 | 61 20 6c 6f 6e 67 77 6f |cked in |a longwo| |00002870| 72 64 2e 20 20 4e 6f 74 | 65 20 74 68 61 74 20 61 |rd. Not|e that a| |00002880| 20 7a 65 72 6f 20 72 65 | 73 75 6c 74 20 69 6e 64 | zero re|sult ind| |00002890| 69 63 61 74 65 73 20 6e | 6f 0d 09 2f 2f 20 63 68 |icates n|o..// ch| |000028a0| 61 6e 67 65 2c 20 61 6e | 64 20 77 65 20 63 61 6e |ange, an|d we can| |000028b0| 20 73 6b 69 70 20 74 68 | 69 73 20 77 68 6f 6c 65 | skip th|is whole| |000028c0| 20 74 68 69 6e 67 2e 0d | 09 2f 2f 0d 09 67 72 6f | thing..|.//..gro| |000028d0| 77 5f 72 65 73 75 6c 74 | 20 3d 20 23 47 72 6f 77 |w_result| = #Grow| |000028e0| 57 69 6e 64 6f 77 28 64 | 77 70 2d 3e 77 70 2c 26 |Window(d|wp->wp,&| |000028f0| 45 76 65 6e 74 2e 77 68 | 65 72 65 2c 20 26 64 77 |Event.wh|ere, &dw| |00002900| 70 2d 3e 67 72 6f 77 5f | 72 65 63 74 29 3b 0d 09 |p->grow_|rect);..| |00002910| 69 66 28 67 72 6f 77 5f | 72 65 73 75 6c 74 20 3d |if(grow_|result =| |00002920| 3d 20 30 29 0d 09 09 72 | 65 74 75 72 6e 3b 0d 09 |= 0)...r|eturn;..| |00002930| 68 65 69 67 68 74 20 3d | 20 28 75 6e 73 69 67 6e |height =| (unsign| |00002940| 65 64 20 73 68 6f 72 74 | 29 23 48 69 57 6f 72 64 |ed short|)#HiWord| |00002950| 28 67 72 6f 77 5f 72 65 | 73 75 6c 74 29 3b 0d 09 |(grow_re|sult);..| |00002960| 77 69 64 74 68 20 3d 20 | 28 75 6e 73 69 67 6e 65 |width = |(unsigne| |00002970| 64 20 73 68 6f 72 74 29 | 23 4c 6f 57 6f 72 64 28 |d short)|#LoWord(| |00002980| 67 72 6f 77 5f 72 65 73 | 75 6c 74 29 3b 0d 09 23 |grow_res|ult);..#| |00002990| 53 65 74 50 6f 72 74 28 | 64 77 70 2d 3e 77 70 29 |SetPort(|dwp->wp)| |000029a0| 3b 09 09 09 09 09 09 09 | 09 2f 2f 20 48 6f 6f 6b |;.......|.// Hook| |000029b0| 20 75 70 20 51 75 69 63 | 6b 64 72 61 77 20 2e 2e | up Quic|kdraw ..| |000029c0| 2e 0d 09 70 72 20 3d 20 | 26 28 28 64 77 70 2d 3e |...pr = |&((dwp->| |000029d0| 77 70 29 2d 3e 70 6f 72 | 74 52 65 63 74 29 3b 09 |wp)->por|tRect);.| |000029e0| 09 09 09 09 2f 2f 20 70 | 72 20 2d 2d 3e 20 6e 65 |....// p|r --> ne| |000029f0| 77 20 70 6f 72 74 52 65 | 63 74 20 6f 66 20 77 69 |w portRe|ct of wi| |00002a00| 6e 64 6f 77 0d 09 0d 09 | 69 66 28 64 77 70 2d 3e |ndow....|if(dwp->| |00002a10| 74 65 5f 68 61 6e 64 6c | 65 20 21 3d 20 30 29 09 |te_handl|e != 0).| |00002a20| 09 09 09 09 09 09 2f 2f | 20 54 65 78 74 45 64 69 |......//| TextEdi| |00002a30| 74 20 77 69 6e 64 6f 77 | 73 20 6f 6e 6c 79 0d 09 |t window|s only..| |00002a40| 09 7b 0d 09 09 2f 2f 0d | 09 09 2f 2f 20 54 68 65 |.{...//.|..// The| |00002a50| 20 73 63 72 6f 6c 6c 20 | 62 61 72 73 20 6d 75 73 | scroll |bars mus| |00002a60| 74 20 62 65 20 6d 61 6e | 75 61 6c 6c 79 20 61 63 |t be man|ually ac| |00002a70| 63 75 6d 75 6c 61 74 65 | 64 20 69 6e 74 6f 20 74 |cumulate|d into t| |00002a80| 68 65 20 75 70 64 61 74 | 65 0d 09 09 2f 2f 20 72 |he updat|e...// r| |00002a90| 65 67 69 6f 6e 2e 20 20 | 53 65 65 20 74 68 65 20 |egion. |See the | |00002aa0| 77 69 6e 64 6f 77 20 6d | 61 6e 61 67 65 72 20 6d |window m|anager m| |00002ab0| 61 6e 75 61 6c 20 66 6f | 72 20 61 20 66 61 69 72 |anual fo|r a fair| |00002ac0| 6c 79 20 6c 75 63 69 64 | 0d 09 09 2f 2f 20 65 78 |ly lucid|...// ex| |00002ad0| 70 6c 61 6e 61 74 69 6f | 6e 20 6f 66 20 74 68 69 |planatio|n of thi| |00002ae0| 73 2e 20 20 57 65 20 61 | 6c 73 6f 20 68 61 76 65 |s. We a|lso have| |00002af0| 20 74 6f 20 69 6e 76 61 | 6c 69 64 61 74 65 20 74 | to inva|lidate t| |00002b00| 68 65 20 73 69 7a 65 20 | 62 6f 78 2e 0d 09 09 2f |he size |box..../| |00002b10| 2f 20 4e 6f 74 65 20 77 | 65 20 61 72 65 20 6d 61 |/ Note w|e are ma| |00002b20| 6b 69 6e 67 20 61 73 73 | 75 6d 70 74 69 6f 6e 73 |king ass|umptions| |00002b30| 20 68 65 72 65 20 61 62 | 6f 75 74 20 74 68 65 20 | here ab|out the | |00002b40| 73 69 7a 65 20 61 6e 64 | 20 6c 6f 63 61 74 69 6f |size and| locatio| |00002b50| 6e 0d 09 09 2f 2f 20 6f | 66 20 74 68 65 20 73 63 |n...// o|f the sc| |00002b60| 72 6f 6c 6c 65 72 73 2e | 20 20 54 68 69 73 20 73 |rollers.| This s| |00002b70| 74 75 66 66 20 68 61 6e | 64 6c 65 73 20 74 68 65 |tuff han|dles the| |00002b80| 20 63 61 73 65 20 77 68 | 65 72 65 20 74 68 65 20 | case wh|ere the | |00002b90| 77 69 6e 64 6f 77 0d 09 | 09 2f 2f 20 65 6e 6c 61 |window..|.// enla| |00002ba0| 72 67 65 73 2e 20 20 54 | 68 65 20 63 61 6c 6c 73 |rges. T|he calls| |00002bb0| 20 74 6f 20 44 72 61 77 | 43 6f 6e 74 72 6f 6c 73 | to Draw|Controls| |00002bc0| 20 61 6e 64 20 44 72 61 | 77 47 72 6f 77 49 63 6f | and Dra|wGrowIco| |00002bd0| 6e 20 69 6e 20 74 68 65 | 20 0d 09 09 2f 2f 20 75 |n in the| ...// u| |00002be0| 70 64 61 74 65 20 65 76 | 65 6e 74 20 68 61 6e 64 |pdate ev|ent hand| |00002bf0| 6c 65 72 20 74 61 6b 65 | 20 63 61 72 65 20 6f 66 |ler take| care of| |00002c00| 20 74 68 65 20 73 68 72 | 69 6e 6b 20 63 61 73 65 | the shr|ink case| |00002c10| 2e 0d 09 09 2f 2f 0d 09 | 09 74 65 6d 70 5f 72 65 |....//..|.temp_re| |00002c20| 63 74 2e 74 6f 70 20 3d | 20 70 72 2d 3e 74 6f 70 |ct.top =| pr->top| |00002c30| 3b 0d 09 09 74 65 6d 70 | 5f 72 65 63 74 2e 62 6f |;...temp|_rect.bo| |00002c40| 74 74 6f 6d 20 3d 20 70 | 72 2d 3e 62 6f 74 74 6f |ttom = p|r->botto| |00002c50| 6d 3b 0d 09 09 74 65 6d | 70 5f 72 65 63 74 2e 72 |m;...tem|p_rect.r| |00002c60| 69 67 68 74 20 3d 20 70 | 72 2d 3e 72 69 67 68 74 |ight = p|r->right| |00002c70| 3b 0d 09 09 74 65 6d 70 | 5f 72 65 63 74 2e 6c 65 |;...temp|_rect.le| |00002c80| 66 74 20 3d 20 74 65 6d | 70 5f 72 65 63 74 2e 72 |ft = tem|p_rect.r| |00002c90| 69 67 68 74 20 2d 20 31 | 36 3b 09 2f 2f 20 52 69 |ight - 1|6;.// Ri| |00002ca0| 67 68 74 20 68 61 6e 64 | 20 31 36 20 70 69 78 65 |ght hand| 16 pixe| |00002cb0| 6c 73 0d 09 09 23 49 6e | 76 61 6c 52 65 63 74 28 |ls...#In|valRect(| |00002cc0| 26 74 65 6d 70 5f 72 65 | 63 74 29 3b 09 09 09 09 |&temp_re|ct);....| |00002cd0| 09 09 2f 2f 20 41 64 64 | 20 69 74 20 74 6f 20 74 |..// Add| it to t| |00002ce0| 68 65 20 75 70 64 61 74 | 65 20 72 65 67 69 6f 6e |he updat|e region| |00002cf0| 0d 09 09 74 65 6d 70 5f | 72 65 63 74 2e 74 6f 70 |...temp_|rect.top| |00002d00| 20 3d 20 74 65 6d 70 5f | 72 65 63 74 2e 62 6f 74 | = temp_|rect.bot| |00002d10| 74 6f 6d 20 2d 20 31 36 | 3b 09 2f 2f 20 53 69 7a |tom - 16|;.// Siz| |00002d20| 65 20 62 6f 78 0d 09 09 | 23 45 72 61 73 65 52 65 |e box...|#EraseRe| |00002d30| 63 74 28 26 74 65 6d 70 | 5f 72 65 63 74 29 3b 09 |ct(&temp|_rect);.| |00002d40| 09 09 09 09 09 2f 2f 20 | 45 72 61 73 65 20 73 69 |.....// |Erase si| |00002d50| 7a 65 20 62 6f 78 20 28 | 57 48 59 3f 3f 3f 3f 3f |ze box (|WHY?????| |00002d60| 29 0d 09 09 74 65 6d 70 | 5f 72 65 63 74 2e 6c 65 |)...temp|_rect.le| |00002d70| 66 74 20 3d 20 70 72 2d | 3e 6c 65 66 74 3b 09 09 |ft = pr-|>left;..| |00002d80| 09 09 09 2f 2f 20 42 6f | 74 74 6f 6d 20 31 36 20 |...// Bo|ttom 16 | |00002d90| 70 69 78 65 6c 73 0d 09 | 09 23 49 6e 76 61 6c 52 |pixels..|.#InvalR| |00002da0| 65 63 74 28 26 74 65 6d | 70 5f 72 65 63 74 29 3b |ect(&tem|p_rect);| |00002db0| 09 09 09 09 09 09 2f 2f | 20 41 64 64 20 69 74 20 |......//| Add it | |00002dc0| 74 6f 20 74 68 65 20 75 | 70 64 61 74 65 20 72 65 |to the u|pdate re| |00002dd0| 67 69 6f 6e 0d 09 09 7d | 0d 09 0d 09 2f 2f 0d 09 |gion...}|....//..| |00002de0| 2f 2f 20 4e 6f 77 20 77 | 65 20 72 65 2d 73 69 7a |// Now w|e re-siz| |00002df0| 65 20 61 6e 64 20 73 65 | 74 20 75 70 64 61 74 65 |e and se|t update| |00002e00| 20 6f 6e 20 74 68 65 20 | 77 69 6e 62 64 6f 77 2e | on the |winbdow.| |00002e10| 20 20 54 68 65 6e 20 6d | 6f 76 65 20 61 6e 64 0d | Then m|ove and.| |00002e20| 09 2f 2f 20 72 65 73 69 | 7a 65 20 74 68 65 20 63 |.// resi|ze the c| |00002e30| 6f 6e 74 72 6f 6c 73 2e | 20 20 46 69 6e 61 6c 6c |ontrols.| Finall| |00002e40| 79 2c 20 75 70 64 61 74 | 65 20 74 68 65 20 74 65 |y, updat|e the te| |00002e50| 78 74 2d 65 64 69 74 20 | 22 76 69 65 77 52 65 63 |xt-edit |"viewRec| |00002e60| 74 22 2e 0d 09 2f 2f 0d | 09 23 53 69 7a 65 57 69 |t"...//.|.#SizeWi| |00002e70| 6e 64 6f 77 28 64 77 70 | 2d 3e 77 70 2c 20 77 69 |ndow(dwp|->wp, wi| |00002e80| 64 74 68 2c 20 68 65 69 | 67 68 74 2c 20 54 52 55 |dth, hei|ght, TRU| |00002e90| 45 29 3b 20 2f 2f 20 52 | 65 73 69 7a 65 20 26 20 |E); // R|esize & | |00002ea0| 73 74 61 72 74 20 75 70 | 64 61 74 65 20 72 67 6e |start up|date rgn| |00002eb0| 0d 0d 09 69 66 28 64 77 | 70 2d 3e 74 65 5f 68 61 |...if(dw|p->te_ha| |00002ec0| 6e 64 6c 65 20 21 3d 20 | 30 29 09 09 09 09 09 09 |ndle != |0)......| |00002ed0| 2f 2f 20 4f 6e 6c 79 20 | 66 6f 72 20 54 65 78 74 |// Only |for Text| |00002ee0| 45 64 69 74 20 77 69 6e | 64 6f 77 73 20 2e 2e 2e |Edit win|dows ...| |00002ef0| 0d 09 09 7b 0d 09 09 23 | 4d 6f 76 65 43 6f 6e 74 |...{...#|MoveCont| |00002f00| 72 6f 6c 28 64 77 70 2d | 3e 76 73 5f 68 61 6e 64 |rol(dwp-|>vs_hand| |00002f10| 6c 65 2c 20 70 72 2d 3e | 72 69 67 68 74 20 2d 20 |le, pr->|right - | |00002f20| 31 35 2c 20 70 72 2d 3e | 74 6f 70 20 2d 20 31 29 |15, pr->|top - 1)| |00002f30| 3b 0d 09 09 23 53 69 7a | 65 43 6f 6e 74 72 6f 6c |;...#Siz|eControl| |00002f40| 28 64 77 70 2d 3e 76 73 | 5f 68 61 6e 64 6c 65 2c |(dwp->vs|_handle,| |00002f50| 20 31 36 2c 28 70 72 2d | 3e 62 6f 74 74 6f 6d 20 | 16,(pr-|>bottom | |00002f60| 2d 20 70 72 2d 3e 74 6f | 70 20 2d 20 31 33 29 29 |- pr->to|p - 13))| |00002f70| 3b 0d 0d 09 09 23 4d 6f | 76 65 43 6f 6e 74 72 6f |;....#Mo|veContro| |00002f80| 6c 28 64 77 70 2d 3e 68 | 73 5f 68 61 6e 64 6c 65 |l(dwp->h|s_handle| |00002f90| 2c 20 70 72 2d 3e 6c 65 | 66 74 20 2d 20 31 2c 20 |, pr->le|ft - 1, | |00002fa0| 70 72 2d 3e 62 6f 74 74 | 6f 6d 20 2d 20 31 35 29 |pr->bott|om - 15)| |00002fb0| 3b 20 0d 09 09 23 53 69 | 7a 65 43 6f 6e 74 72 6f |; ...#Si|zeContro| |00002fc0| 6c 28 64 77 70 2d 3e 68 | 73 5f 68 61 6e 64 6c 65 |l(dwp->h|s_handle| |00002fd0| 2c 20 28 70 72 2d 3e 72 | 69 67 68 74 20 2d 20 70 |, (pr->r|ight - p| |00002fe0| 72 2d 3e 6c 65 66 74 20 | 2d 20 31 33 29 2c 20 31 |r->left |- 13), 1| |00002ff0| 36 29 3b 0d 0d 09 09 2f | 2f 0d 09 09 2f 2f 20 4e |6);..../|/...// N| |00003000| 6f 74 65 20 74 68 65 20 | 64 69 72 65 63 74 20 61 |ote the |direct a| |00003010| 63 63 65 73 73 20 74 6f | 20 54 45 27 73 20 76 69 |ccess to| TE's vi| |00003020| 65 77 20 72 65 63 74 20 | 76 69 61 20 74 68 65 20 |ew rect |via the | |00003030| 68 61 6e 64 6c 65 0d 09 | 09 2f 2f 20 77 65 20 73 |handle..|.// we s| |00003040| 74 6f 72 65 64 20 69 6e | 20 6f 75 72 20 57 43 42 |tored in| our WCB| |00003050| 2e 0d 09 09 2f 2f 0d 09 | 09 63 61 6c 63 5f 76 72 |....//..|.calc_vr| |00003060| 65 63 74 28 70 72 2c 20 | 26 28 28 2a 28 64 77 70 |ect(pr, |&((*(dwp| |00003070| 2d 3e 74 65 5f 68 61 6e | 64 6c 65 29 29 2d 3e 76 |->te_han|dle))->v| |00003080| 69 65 77 52 65 63 74 29 | 29 3b 09 0d 09 09 7d 0d |iewRect)|);....}.| |00003090| 09 7d 0d 0d 2f 2a 0d 20 | 2a 20 43 41 4c 43 5f 56 |.}../*. |* CALC_V| |000030a0| 52 45 43 54 28 29 20 2d | 20 4d 61 6b 65 20 61 20 |RECT() -| Make a | |000030b0| 54 65 78 74 45 64 69 74 | 20 76 69 65 77 52 65 63 |TextEdit| viewRec| |000030c0| 74 20 66 72 6f 6d 20 70 | 6f 72 74 52 65 63 74 0d |t from p|ortRect.| |000030d0| 20 2a 0d 20 2a 20 49 6e | 70 75 74 73 3a 0d 20 2a | *. * In|puts:. *| |000030e0| 09 09 70 72 09 2d 2d 3e | 09 57 69 6e 64 6f 77 27 |..pr.-->|.Window'| |000030f0| 73 20 70 6f 72 74 52 65 | 63 74 0d 20 2a 09 09 76 |s portRe|ct. *..v| |00003100| 72 09 2d 2d 3e 09 77 68 | 65 72 65 20 74 6f 20 66 |r.-->.wh|ere to f| |00003110| 69 6c 6c 20 69 6e 20 76 | 69 65 77 52 65 63 74 0d |ill in v|iewRect.| |00003120| 20 2a 0d 20 2a 20 4f 75 | 74 70 75 74 73 3a 0d 20 | *. * Ou|tputs:. | |00003130| 2a 09 09 76 72 2d 3e 74 | 6f 70 4c 65 66 74 20 61 |*..vr->t|opLeft a| |00003140| 6e 64 20 76 72 2d 3e 62 | 6f 74 52 69 67 68 74 20 |nd vr->b|otRight | |00003150| 61 72 65 20 66 69 6c 6c | 65 64 20 69 6e 0d 20 2a |are fill|ed in. *| |00003160| 0d 20 2a 20 54 68 65 20 | 54 65 78 74 45 64 69 74 |. * The |TextEdit| |00003170| 20 76 69 65 77 52 65 63 | 74 20 69 73 20 73 65 74 | viewRec|t is set| |00003180| 20 75 70 20 74 6f 20 70 | 72 6f 76 69 64 65 20 31 | up to p|rovide 1| |00003190| 35 2d 70 69 78 65 6c 20 | 73 74 72 69 70 73 20 61 |5-pixel |strips a| |000031a0| 6c 6f 6e 67 0d 20 2a 20 | 74 68 65 20 72 69 67 68 |long. * |the righ| |000031b0| 74 20 68 61 6e 64 20 61 | 6e 64 20 62 6f 74 74 6f |t hand a|nd botto| |000031c0| 6d 20 65 64 67 65 73 20 | 6f 66 20 74 68 65 20 64 |m edges |of the d| |000031d0| 64 69 74 69 6e 67 20 77 | 69 6e 64 6f 77 20 28 66 |diting w|indow (f| |000031e0| 6f 72 20 73 63 72 6f 6c | 6c 65 72 73 0d 20 2a 20 |or scrol|lers. * | |000031f0| 61 6e 64 20 74 68 65 20 | 73 69 7a 65 20 62 6f 78 |and the |size box| |00003200| 2e 20 49 74 20 61 6c 73 | 6f 20 70 72 6f 76 69 64 |. It als|o provid| |00003210| 65 73 20 61 20 34 2d 70 | 69 78 65 6c 20 22 62 6c |es a 4-p|ixel "bl| |00003220| 65 65 64 22 20 61 74 20 | 74 68 65 20 6c 65 66 74 |eed" at |the left| |00003230| 20 65 64 67 65 2e 0d 20 | 2a 20 61 6e 64 20 61 74 | edge.. |* and at| |00003240| 20 74 68 65 20 74 6f 70 | 2e 0d 20 2a 2f 0d 63 61 | the top|.. */.ca| |00003250| 6c 63 5f 76 72 65 63 74 | 28 70 72 2c 20 76 72 29 |lc_vrect|(pr, vr)| |00003260| 0d 52 65 63 74 20 2a 70 | 72 3b 0d 52 65 63 74 20 |.Rect *p|r;.Rect | |00003270| 2a 76 72 3b 0d 09 7b 0d | 09 76 72 2d 3e 74 6f 70 |*vr;..{.|.vr->top| |00003280| 20 3d 20 70 72 2d 3e 74 | 6f 70 20 2b 20 34 3b 0d | = pr->t|op + 4;.| |00003290| 09 76 72 2d 3e 6c 65 66 | 74 20 3d 20 70 72 2d 3e |.vr->lef|t = pr->| |000032a0| 6c 65 66 74 20 2b 20 34 | 3b 0d 09 76 72 2d 3e 62 |left + 4|;..vr->b| |000032b0| 6f 74 74 6f 6d 20 3d 20 | 70 72 2d 3e 62 6f 74 74 |ottom = |pr->bott| |000032c0| 6f 6d 20 2d 20 31 35 3b | 0d 09 76 72 2d 3e 72 69 |om - 15;|..vr->ri| |000032d0| 67 68 74 20 3d 20 70 72 | 2d 3e 72 69 67 68 74 20 |ght = pr|->right | |000032e0| 2d 20 31 35 3b 0d 09 7d | 0d 0d 2f 2a 0d 20 2a 20 |- 15;..}|../*. * | |000032f0| 50 41 47 45 5f 53 43 52 | 4f 4c 4c 28 29 20 2d 20 |PAGE_SCR|OLL() - | |00003300| 53 63 72 6f 6c 6c 20 61 | 20 70 61 67 65 20 70 65 |Scroll a| page pe| |00003310| 72 20 69 6e 64 69 63 61 | 74 6f 72 0d 20 2a 0d 20 |r indica|tor. *. | |00003320| 2a 09 49 6e 70 75 74 73 | 3a 0d 20 2a 09 09 70 61 |*.Inputs|:. *..pa| |00003330| 72 74 09 09 50 61 72 74 | 20 63 6f 64 65 20 77 68 |rt..Part| code wh| |00003340| 65 72 65 20 66 69 72 73 | 74 20 63 6c 69 63 6b 65 |ere firs|t clicke| |00003350| 64 20 64 6f 77 6e 0d 20 | 2a 09 09 63 68 09 09 09 |d down. |*..ch...| |00003360| 63 6f 6e 74 72 6f 6c 20 | 68 61 6e 64 6c 65 0d 20 |control |handle. | |00003370| 2a 09 09 64 69 72 09 09 | 64 69 72 65 63 74 69 6f |*..dir..|directio| |00003380| 6e 20 28 2d 31 20 3d 20 | 75 70 2c 20 2b 31 20 3d |n (-1 = |up, +1 =| |00003390| 20 64 6f 77 6e 29 0d 20 | 2a 0d 20 2a 20 4f 75 74 | down). |*. * Out| |000033a0| 70 75 74 73 3a 0d 20 2a | 09 09 6e 6f 6e 65 0d 20 |puts:. *|..none. | |000033b0| 2a 2f 0d 70 61 67 65 5f | 73 63 72 6f 6c 6c 28 70 |*/.page_|scroll(p| |000033c0| 61 72 74 2c 20 63 68 2c | 20 64 69 72 29 0d 73 68 |art, ch,| dir).sh| |000033d0| 6f 72 74 20 70 61 72 74 | 3b 0d 43 6f 6e 74 72 6f |ort part|;.Contro| |000033e0| 6c 48 61 6e 64 6c 65 20 | 63 68 3b 0d 73 68 6f 72 |lHandle |ch;.shor| |000033f0| 74 20 64 69 72 3b 0d 09 | 7b 0d 09 50 6f 69 6e 74 |t dir;..|{..Point| |00003400| 20 63 75 72 5f 70 74 3b | 0d 09 73 68 6f 72 74 20 | cur_pt;|..short | |00003410| 61 6d 6f 75 6e 74 3b 0d | 09 52 65 63 74 20 2a 76 |amount;.|.Rect *v| |00003420| 72 3b 0d 09 0d 09 2f 2f | 0d 09 2f 2f 20 46 69 72 |r;....//|..// Fir| |00003430| 73 74 2c 20 63 61 6c 63 | 75 6c 61 74 65 20 74 68 |st, calc|ulate th| |00003440| 65 20 22 70 61 67 65 20 | 73 69 7a 65 22 20 69 6e |e "page |size" in| |00003450| 20 70 69 78 65 6c 73 2e | 20 20 46 6f 72 20 56 20 | pixels.| For V | |00003460| 73 63 72 6f 6c 6c 2c 20 | 69 74 20 69 73 0d 09 2f |scroll, |it is../| |00003470| 2f 20 74 68 65 20 76 69 | 65 77 52 65 63 74 20 68 |/ the vi|ewRect h| |00003480| 65 69 67 68 74 20 6c 65 | 73 73 20 74 68 65 20 6c |eight le|ss the l| |00003490| 69 6e 65 20 68 65 69 67 | 68 74 2e 20 20 46 6f 72 |ine heig|ht. For| |000034a0| 20 48 20 73 63 72 6f 6c | 6c 2c 20 69 74 20 69 73 | H scrol|l, it is| |000034b0| 0d 09 2f 2f 20 68 61 6c | 66 20 74 68 65 20 77 69 |..// hal|f the wi| |000034c0| 64 74 68 20 6f 66 20 74 | 68 65 20 76 69 65 77 52 |dth of t|he viewR| |000034d0| 65 63 74 2e 0d 09 2f 2f | 0d 09 76 72 20 3d 20 26 |ect...//|..vr = &| |000034e0| 28 28 2a 28 64 77 70 2d | 3e 74 65 5f 68 61 6e 64 |((*(dwp-|>te_hand| |000034f0| 6c 65 29 29 2d 3e 76 69 | 65 77 52 65 63 74 29 3b |le))->vi|ewRect);| |00003500| 09 2f 2f 20 76 72 20 2d | 3e 20 63 75 72 72 65 6e |.// vr -|> curren| |00003510| 74 20 56 69 65 77 52 65 | 63 74 0d 09 69 66 28 63 |t ViewRe|ct..if(c| |00003520| 68 20 3d 3d 20 64 77 70 | 2d 3e 76 73 5f 68 61 6e |h == dwp|->vs_han| |00003530| 64 6c 65 29 09 09 09 09 | 09 09 2f 2f 20 49 66 20 |dle)....|..// If | |00003540| 74 68 69 73 20 69 73 20 | 74 68 65 20 76 65 72 74 |this is |the vert| |00003550| 69 63 61 6c 20 73 63 72 | 6f 6c 6c 65 72 0d 09 09 |ical scr|oller...| |00003560| 61 6d 6f 75 6e 74 20 3d | 20 76 72 2d 3e 62 6f 74 |amount =| vr->bot| |00003570| 74 6f 6d 20 2d 20 76 72 | 2d 3e 74 6f 70 20 2d 20 |tom - vr|->top - | |00003580| 28 73 68 6f 72 74 29 67 | 65 74 5f 6c 68 28 29 3b |(short)g|et_lh();| |00003590| 0d 09 65 6c 73 65 09 09 | 09 09 09 09 09 09 09 09 |..else..|........| |000035a0| 09 09 2f 2f 20 48 6f 72 | 69 7a 20 73 63 72 6f 6c |..// Hor|iz scrol| |000035b0| 6c 0d 09 09 61 6d 6f 75 | 6e 74 20 3d 20 28 76 72 |l...amou|nt = (vr| |000035c0| 2d 3e 72 69 67 68 74 20 | 2d 20 76 72 2d 3e 6c 65 |->right |- vr->le| |000035d0| 66 74 29 20 2f 20 32 3b | 0d 09 61 6d 6f 75 6e 74 |ft) / 2;|..amount| |000035e0| 20 2a 3d 20 64 69 72 3b | 09 09 09 09 09 09 09 09 | *= dir;|........| |000035f0| 09 2f 2f 20 43 68 61 6e | 67 65 20 73 69 67 6e 20 |.// Chan|ge sign | |00003600| 70 65 72 20 72 65 71 75 | 69 72 65 6d 65 6e 74 73 |per requ|irements| |00003610| 0d 0d 09 2f 2f 0d 09 2f | 2f 20 4e 6f 77 20 77 65 |...//../|/ Now we| |00003620| 20 6d 75 73 74 20 6c 6f | 63 61 6c 6c 79 20 68 61 | must lo|cally ha| |00003630| 6e 64 6c 65 20 74 68 65 | 20 6d 6f 75 73 65 20 70 |ndle the| mouse p| |00003640| 65 72 20 74 68 65 20 4d | 61 63 69 6e 74 6f 73 68 |er the M|acintosh| |00003650| 20 49 6e 74 65 72 66 61 | 63 65 0d 09 2f 2f 20 47 | Interfa|ce..// G| |00003660| 75 69 64 65 6c 69 6e 65 | 73 2e 20 20 4c 6f 6f 6b |uideline|s. Look| |00003670| 20 63 6c 6f 73 65 6c 79 | 20 61 74 20 74 68 69 73 | closely| at this| |00003680| 20 63 6f 64 65 20 61 6e | 64 20 6e 6f 74 65 20 77 | code an|d note w| |00003690| 68 61 74 20 69 74 20 72 | 65 61 6c 6c 79 0d 09 2f |hat it r|eally../| |000036a0| 2f 20 64 6f 65 73 20 2e | 2e 2e 0d 09 2f 2f 0d 09 |/ does .|....//..| |000036b0| 64 6f 09 09 09 09 09 09 | 09 09 09 09 09 09 09 2f |do......|......./| |000036c0| 2f 20 44 6f 20 74 68 69 | 73 20 6f 6e 63 65 20 65 |/ Do thi|s once e| |000036d0| 76 65 6e 20 69 66 20 6d | 6f 75 73 65 20 69 73 0d |ven if m|ouse is.| |000036e0| 09 09 7b 09 09 09 09 09 | 09 09 09 09 09 09 09 2f |..{.....|......./| |000036f0| 2f 20 20 20 75 70 20 62 | 79 20 6e 6f 77 20 2e 2e |/ up b|y now ..| |00003700| 2e 0d 09 09 23 47 65 74 | 4d 6f 75 73 65 28 26 63 |....#Get|Mouse(&c| |00003710| 75 72 5f 70 74 29 3b 09 | 09 09 09 09 09 2f 2f 20 |ur_pt);.|.....// | |00003720| 47 65 74 20 63 75 72 72 | 65 6e 74 20 6d 6f 75 73 |Get curr|ent mous| |00003730| 65 0d 09 09 69 66 28 28 | 73 68 6f 72 74 29 23 54 |e...if((|short)#T| |00003740| 65 73 74 43 6f 6e 74 72 | 6f 6c 28 63 68 2c 20 26 |estContr|ol(ch, &| |00003750| 63 75 72 5f 70 74 29 20 | 21 3d 20 70 61 72 74 29 |cur_pt) |!= part)| |00003760| 09 2f 2f 20 49 66 20 6f | 75 74 20 6f 66 20 6f 72 |.// If o|ut of or| |00003770| 69 67 69 6e 61 6c 20 70 | 61 72 74 0d 09 09 09 63 |iginal p|art....c| |00003780| 6f 6e 74 69 6e 75 65 3b | 09 09 09 09 09 09 09 09 |ontinue;|........| |00003790| 2f 2f 20 44 6f 6e 27 74 | 20 64 6f 20 61 6e 79 74 |// Don't| do anyt| |000037a0| 68 69 6e 67 0d 09 09 23 | 53 65 74 43 74 6c 56 61 |hing...#|SetCtlVa| |000037b0| 6c 75 65 28 63 68 2c 20 | 23 47 65 74 43 74 6c 56 |lue(ch, |#GetCtlV| |000037c0| 61 6c 75 65 28 63 68 29 | 20 2b 20 61 6d 6f 75 6e |alue(ch)| + amoun| |000037d0| 74 29 3b 09 2f 2f 20 50 | 61 67 65 20 63 6f 6e 74 |t);.// P|age cont| |000037e0| 72 6f 6c 20 76 61 6c 75 | 65 0d 09 09 65 64 69 74 |rol valu|e...edit| |000037f0| 5f 73 63 72 6f 6c 6c 28 | 29 3b 09 09 09 09 09 09 |_scroll(|);......| |00003800| 09 09 2f 2f 20 50 61 67 | 65 20 74 68 65 20 74 65 |..// Pag|e the te| |00003810| 78 74 0d 09 09 7d 20 77 | 68 69 6c 65 28 23 53 74 |xt...} w|hile(#St| |00003820| 69 6c 6c 44 6f 77 6e 28 | 29 29 3b 0d 09 7d 0d 09 |illDown(|));..}..| |00003830| 09 0d 0d 2f 2a 0d 20 2a | 20 53 43 52 4f 4c 4c 5f |.../*. *| SCROLL_| |00003840| 55 50 28 29 20 2d 20 53 | 63 72 6f 6c 6c 20 75 70 |UP() - S|croll up| |00003850| 20 61 20 74 65 78 74 20 | 65 64 69 74 20 77 69 6e | a text |edit win| |00003860| 64 6f 77 0d 20 2a 0d 20 | 2a 20 54 68 69 73 20 72 |dow. *. |* This r| |00003870| 6f 75 74 69 6e 65 20 69 | 73 20 63 61 6c 6c 65 64 |outine i|s called| |00003880| 20 62 61 63 6b 20 66 72 | 6f 6d 20 74 68 65 20 74 | back fr|om the t| |00003890| 6f 6f 6c 62 6f 78 20 77 | 69 74 68 20 28 6e 61 74 |oolbox w|ith (nat| |000038a0| 75 72 61 6c 6c 79 29 0d | 20 2a 20 50 61 73 63 61 |urally).| * Pasca| |000038b0| 6c 2d 66 6c 61 76 6f 72 | 65 64 20 61 72 67 75 6d |l-flavor|ed argum| |000038c0| 65 6e 74 73 20 6f 6e 20 | 74 68 65 20 73 74 61 63 |ents on |the stac| |000038d0| 6b 2e 20 20 49 27 76 65 | 20 74 61 6b 65 6e 20 74 |k. I've| taken t| |000038e0| 68 69 73 0d 20 2a 20 6f | 70 70 6f 72 74 75 6e 69 |his. * o|pportuni| |000038f0| 74 79 20 74 6f 20 64 65 | 6d 6f 6e 73 74 72 61 74 |ty to de|monstrat| |00003900| 65 20 69 6e 6c 69 6e 65 | 20 61 73 73 65 6d 62 6c |e inline| assembl| |00003910| 79 20 6c 61 6e 67 75 61 | 67 65 20 61 6e 64 20 68 |y langua|ge and h| |00003920| 6f 77 0d 20 2a 20 74 6f | 20 61 63 74 20 6c 69 6b |ow. * to| act lik| |00003930| 65 20 61 20 50 61 73 63 | 61 6c 20 70 72 6f 63 65 |e a Pasc|al proce| |00003940| 64 75 72 65 2e 0d 20 2a | 0d 20 2a 20 4e 6f 74 65 |dure.. *|. * Note| |00003950| 20 74 68 61 74 20 74 68 | 65 20 73 63 72 6f 6c 6c | that th|e scroll| |00003960| 65 64 20 61 6d 6f 75 6e | 74 20 69 73 20 65 71 75 |ed amoun|t is equ| |00003970| 61 6c 20 74 6f 20 74 68 | 65 20 6c 69 6e 65 20 68 |al to th|e line h| |00003980| 65 69 67 68 74 20 61 73 | 0d 20 2a 20 73 74 6f 72 |eight as|. * stor| |00003990| 65 64 20 69 6e 20 74 68 | 65 20 54 65 78 74 45 64 |ed in th|e TextEd| |000039a0| 69 74 20 72 65 63 6f 72 | 64 20 66 6f 72 20 62 6f |it recor|d for bo| |000039b0| 74 68 20 76 65 72 74 69 | 63 61 6c 20 61 6e 64 20 |th verti|cal and | |000039c0| 68 6f 72 69 7a 6f 6e 74 | 61 6c 0d 20 2a 20 73 63 |horizont|al. * sc| |000039d0| 72 6f 6c 6c 69 6e 67 2e | 20 20 0d 20 2a 2f 0d 20 |rolling.| . */. | |000039e0| 73 63 72 6f 6c 6c 5f 75 | 70 28 29 0d 20 09 7b 0d |scroll_u|p(). .{.| |000039f0| 23 61 73 6d 0d 3b 0d 3b | 20 49 6e 70 75 74 73 3a |#asm.;.;| Inputs:| |00003a00| 0d 3b 09 09 09 34 28 73 | 70 29 09 09 09 50 61 72 |.;...4(s|p)...Par| |00003a10| 74 20 63 6f 64 65 20 28 | 69 6e 74 29 0d 3b 09 09 |t code (|int).;..| |00003a20| 09 36 28 73 70 29 09 09 | 09 43 6f 6e 74 72 6f 6c |.6(sp)..|.Control| |00003a30| 20 68 61 6e 64 6c 65 20 | 28 61 64 64 72 65 73 73 | handle |(address| |00003a40| 29 0d 3b 0d 3b 20 4e 4f | 54 45 3a 09 49 20 68 61 |).;.; NO|TE:.I ha| |00003a50| 76 65 20 64 6f 6e 65 20 | 74 68 65 20 75 6e 66 6f |ve done |the unfo| |00003a60| 72 67 69 76 61 62 6c 65 | 20 26 20 65 78 74 72 61 |rgivable| & extra| |00003a70| 63 74 65 64 20 74 68 65 | 20 74 72 61 70 20 76 61 |cted the| trap va| |00003a80| 6c 75 65 73 0d 3b 09 09 | 09 66 72 6f 6d 20 74 68 |lues.;..|.from th| |00003a90| 65 20 74 72 61 70 20 64 | 65 66 69 6e 69 74 69 6f |e trap d|efinitio| |00003aa0| 6e 73 20 72 65 74 68 65 | 72 20 74 68 61 6e 20 69 |ns rethe|r than i| |00003ab0| 6e 63 6c 75 64 65 20 74 | 68 65 20 44 20 66 69 6c |nclude t|he D fil| |00003ac0| 65 2e 0d 3b 09 09 09 49 | 27 6d 20 69 6d 70 61 74 |e..;...I|'m impat| |00003ad0| 69 65 6e 74 20 2e 2e 2e | 0d 3b 0d 09 09 4c 69 6e |ient ...|.;...Lin| |00003ae0| 6b 09 09 61 36 2c 23 30 | 0d 09 09 4d 6f 76 65 2e |k..a6,#0|...Move.| |00003af0| 57 09 38 28 61 36 29 2c | 64 30 09 09 09 3b 20 44 |W.8(a6),|d0...; D| |00003b00| 30 20 3d 20 70 61 72 74 | 20 63 6f 64 65 20 28 57 |0 = part| code (W| |00003b10| 29 0d 09 09 42 65 71 09 | 09 40 31 09 09 09 09 09 |)...Beq.|.@1.....| |00003b20| 3b 20 28 30 20 6d 65 61 | 6e 73 20 6f 75 74 20 6f |; (0 mea|ns out o| |00003b30| 66 20 70 61 72 74 20 72 | 65 67 69 6f 6e 29 0d 09 |f part r|egion)..| |00003b40| 09 4d 6f 76 65 2e 4c 09 | 31 30 28 61 36 29 2c 2d |.Move.L.|10(a6),-| |00003b50| 28 73 70 29 09 3b 20 50 | 75 73 68 20 63 6f 6e 74 |(sp).; P|ush cont| |00003b60| 72 6f 6c 20 68 61 6e 64 | 6c 65 20 28 66 6f 72 20 |rol hand|le (for | |00003b70| 6c 61 74 65 72 29 0d 09 | 09 43 6c 72 2e 57 09 09 |later)..|.Clr.W..| |00003b80| 2d 28 73 70 29 09 09 09 | 09 3b 20 47 65 74 73 20 |-(sp)...|.; Gets | |00003b90| 63 6f 6e 74 72 6f 6c 20 | 76 61 6c 75 65 0d 09 09 |control |value...| |00003ba0| 4d 6f 76 65 2e 4c 09 31 | 30 28 61 36 29 2c 2d 28 |Move.L.1|0(a6),-(| |00003bb0| 73 70 29 09 3b 20 50 75 | 73 68 20 63 6f 6e 74 72 |sp).; Pu|sh contr| |00003bc0| 6f 6c 20 68 61 6e 64 6c | 65 0d 09 09 44 43 2e 57 |ol handl|e...DC.W| |00003bd0| 09 09 24 41 39 36 30 09 | 09 09 09 3b 20 5f 47 65 |..$A960.|...; _Ge| |00003be0| 74 43 74 6c 56 61 6c 75 | 65 20 28 76 61 6c 75 65 |tCtlValu|e (value| |00003bf0| 20 6f 6e 20 73 74 61 63 | 6b 29 0d 09 09 4a 73 72 | on stac|k)...Jsr| |00003c00| 09 09 67 65 74 5f 6c 68 | 09 09 09 3b 20 44 30 20 |..get_lh|...; D0 | |00003c10| 3d 20 74 65 78 74 20 6c | 69 6e 65 20 68 65 69 67 |= text l|ine heig| |00003c20| 68 74 2c 20 70 69 78 65 | 6c 73 20 28 65 61 73 69 |ht, pixe|ls (easi| |00003c30| 65 72 20 69 6e 20 43 29 | 0d 09 09 53 75 62 2e 57 |er in C)|...Sub.W| |00003c40| 09 09 64 30 2c 28 73 70 | 29 09 09 09 3b 20 28 53 |..d0,(sp|)...; (S| |00003c50| 50 29 20 3d 20 6e 65 77 | 20 63 6f 6e 74 72 6f 6c |P) = new| control| |00003c60| 20 76 61 6c 75 65 0d 09 | 09 42 67 65 09 09 40 30 | value..|.Bge..@0| |00003c70| 09 09 09 09 09 3b 20 28 | 6f 6b 2c 20 69 74 73 20 |.....; (|ok, its | |00003c80| 70 6f 73 69 74 69 76 65 | 29 0d 09 09 43 6c 72 2e |positive|)...Clr.| |00003c90| 57 09 09 28 73 70 29 09 | 09 09 09 3b 20 53 74 6f |W..(sp).|...; Sto| |00003ca0| 70 20 63 6f 6e 74 72 6f | 6c 20 61 74 20 30 20 76 |p contro|l at 0 v| |00003cb0| 61 6c 75 65 0d 40 30 3a | 09 44 43 2e 57 09 09 24 |alue.@0:|.DC.W..$| |00003cc0| 41 39 36 33 09 09 09 09 | 3b 20 5f 53 65 74 43 74 |A963....|; _SetCt| |00003cd0| 6c 56 61 6c 75 65 0d 09 | 09 4a 73 72 09 09 65 64 |lValue..|.Jsr..ed| |00003ce0| 69 74 5f 73 63 72 6f 6c | 6c 09 09 3b 20 63 61 6c |it_scrol|l..; cal| |00003cf0| 6c 20 43 20 74 65 78 74 | 20 73 63 72 6f 6c 6c 65 |l C text| scrolle| |00003d00| 72 0d 40 31 3a 0d 09 09 | 55 6e 6c 6b 09 09 61 36 |r.@1:...|Unlk..a6| |00003d10| 09 09 09 09 09 3b 20 22 | 73 74 61 6e 64 61 72 64 |.....; "|standard| |00003d20| 22 20 50 61 73 63 61 6c | 20 72 6f 75 74 69 6e 65 |" Pascal| routine| |00003d30| 20 65 78 69 74 20 2e 2e | 2e 0d 09 09 4d 6f 76 65 | exit ..|....Move| |00003d40| 2e 6c 09 28 73 70 29 2b | 2c 61 30 0d 09 09 41 64 |.l.(sp)+|,a0...Ad| |00003d50| 64 71 09 09 23 36 2c 73 | 70 0d 09 09 4a 6d 70 09 |dq..#6,s|p...Jmp.| |00003d60| 09 28 61 30 29 0d 23 65 | 6e 64 61 73 6d 0d 09 7d |.(a0).#e|ndasm..}| |00003d70| 0d 0d 2f 2a 0d 20 2a 20 | 53 43 52 4f 4c 4c 5f 44 |../*. * |SCROLL_D| |00003d80| 4f 57 4e 28 29 20 2d 20 | 53 63 72 6f 6c 6c 20 64 |OWN() - |Scroll d| |00003d90| 6f 77 6e 20 61 20 74 65 | 78 74 20 65 64 69 74 20 |own a te|xt edit | |00003da0| 77 69 6e 64 6f 77 0d 20 | 2a 0d 20 2a 20 54 68 69 |window. |*. * Thi| |00003db0| 73 20 72 6f 75 74 69 6e | 65 20 69 73 20 63 61 6c |s routin|e is cal| |00003dc0| 6c 65 64 20 62 61 63 6b | 20 66 72 6f 6d 20 74 68 |led back| from th| |00003dd0| 65 20 74 6f 6f 6c 62 6f | 78 20 77 69 74 68 20 28 |e toolbo|x with (| |00003de0| 6e 61 74 75 72 61 6c 6c | 79 29 0d 20 2a 20 50 61 |naturall|y). * Pa| |00003df0| 73 63 61 6c 2d 66 6c 61 | 76 6f 72 65 64 20 61 72 |scal-fla|vored ar| |00003e00| 67 75 6d 65 6e 74 73 20 | 6f 6e 20 74 68 65 20 73 |guments |on the s| |00003e10| 74 61 63 6b 2e 20 53 65 | 65 20 63 6f 6d 6d 65 6e |tack. Se|e commen| |00003e20| 74 73 20 61 62 6f 76 65 | 2e 0d 20 2a 2f 0d 20 73 |ts above|.. */. s| |00003e30| 63 72 6f 6c 6c 5f 64 6f | 77 6e 28 29 0d 20 09 7b |croll_do|wn(). .{| |00003e40| 0d 23 61 73 6d 0d 3b 0d | 3b 20 49 6e 70 75 74 73 |.#asm.;.|; Inputs| |00003e50| 3a 0d 3b 09 09 09 34 28 | 73 70 29 09 09 09 50 61 |:.;...4(|sp)...Pa| |00003e60| 72 74 20 63 6f 64 65 20 | 28 69 6e 74 29 0d 3b 09 |rt code |(int).;.| |00003e70| 09 09 36 28 73 70 29 09 | 09 09 43 6f 6e 74 72 6f |..6(sp).|..Contro| |00003e80| 6c 20 68 61 6e 64 6c 65 | 20 28 61 64 64 72 65 73 |l handle| (addres| |00003e90| 73 29 0d 3b 0d 09 09 4c | 69 6e 6b 09 09 61 36 2c |s).;...L|ink..a6,| |00003ea0| 23 30 09 09 09 09 3b 20 | 6e 6f 20 6c 6f 63 61 6c |#0....; |no local| |00003eb0| 20 61 75 74 6f 6d 61 74 | 69 63 73 0d 09 09 4d 6f | automat|ics...Mo| |00003ec0| 76 65 2e 57 09 38 28 61 | 36 29 2c 64 30 09 09 09 |ve.W.8(a|6),d0...| |00003ed0| 3b 20 44 30 20 3d 20 70 | 61 72 74 20 63 6f 64 65 |; D0 = p|art code| |00003ee0| 20 28 57 29 0d 09 09 42 | 65 71 09 09 40 31 09 09 | (W)...B|eq..@1..| |00003ef0| 09 09 09 3b 20 28 30 20 | 6d 65 61 6e 73 20 6f 75 |...; (0 |means ou| |00003f00| 74 20 6f 66 20 70 61 72 | 74 20 72 65 67 69 6f 6e |t of par|t region| |00003f10| 29 0d 09 09 4d 6f 76 65 | 2e 4c 09 31 30 28 61 36 |)...Move|.L.10(a6| |00003f20| 29 2c 2d 28 73 70 29 09 | 3b 20 50 75 73 68 20 63 |),-(sp).|; Push c| |00003f30| 6f 6e 74 72 6f 6c 20 68 | 61 6e 64 6c 65 20 28 66 |ontrol h|andle (f| |00003f40| 6f 72 20 6c 61 74 65 72 | 29 0d 09 09 43 6c 72 2e |or later|)...Clr.| |00003f50| 57 09 09 2d 28 73 70 29 | 09 09 09 09 3b 20 47 65 |W..-(sp)|....; Ge| |00003f60| 74 73 20 63 6f 6e 74 72 | 6f 6c 20 76 61 6c 75 65 |ts contr|ol value| |00003f70| 0d 09 09 4d 6f 76 65 2e | 4c 09 31 30 28 61 36 29 |...Move.|L.10(a6)| |00003f80| 2c 2d 28 73 70 29 09 3b | 20 50 75 73 68 20 63 6f |,-(sp).;| Push co| |00003f90| 6e 74 72 6f 6c 20 68 61 | 6e 64 6c 65 0d 09 09 44 |ntrol ha|ndle...D| |00003fa0| 43 2e 57 09 09 24 41 39 | 36 30 09 09 09 09 3b 20 |C.W..$A9|60....; | |00003fb0| 5f 47 65 74 43 74 6c 56 | 61 6c 75 65 20 28 76 61 |_GetCtlV|alue (va| |00003fc0| 6c 75 65 20 6f 6e 20 73 | 74 61 63 6b 29 0d 09 09 |lue on s|tack)...| |00003fd0| 4a 73 72 09 09 67 65 74 | 5f 6c 68 09 09 09 3b 20 |Jsr..get|_lh...; | |00003fe0| 44 30 20 3d 20 74 65 78 | 74 20 6c 69 6e 65 20 68 |D0 = tex|t line h| |00003ff0| 65 69 67 68 74 2c 20 70 | 69 78 65 6c 73 20 28 65 |eight, p|ixels (e| |00004000| 61 73 69 65 72 20 69 6e | 20 43 29 0d 09 09 41 64 |asier in| C)...Ad| |00004010| 64 2e 57 09 09 64 30 2c | 28 73 70 29 09 09 09 3b |d.W..d0,|(sp)...;| |00004020| 20 28 53 50 29 20 3d 20 | 6e 65 77 20 63 6f 6e 74 | (SP) = |new cont| |00004030| 72 6f 6c 20 76 61 6c 75 | 65 0d 09 09 44 43 2e 57 |rol valu|e...DC.W| |00004040| 09 09 24 41 39 36 33 09 | 09 09 09 3b 20 5f 53 65 |..$A963.|...; _Se| |00004050| 74 43 74 6c 56 61 6c 75 | 65 0d 09 09 4a 73 72 09 |tCtlValu|e...Jsr.| |00004060| 09 65 64 69 74 5f 73 63 | 72 6f 6c 6c 09 09 3b 20 |.edit_sc|roll..; | |00004070| 63 61 6c 6c 20 43 20 74 | 65 78 74 20 73 63 72 6f |call C t|ext scro| |00004080| 6c 6c 65 72 0d 40 31 3a | 0d 09 09 55 6e 6c 6b 09 |ller.@1:|...Unlk.| |00004090| 09 61 36 09 09 09 09 09 | 3b 20 22 73 74 61 6e 64 |.a6.....|; "stand| |000040a0| 61 72 64 22 20 50 61 73 | 63 61 6c 20 72 6f 75 74 |ard" Pas|cal rout| |000040b0| 69 6e 65 20 65 78 69 74 | 20 2e 2e 2e 0d 09 09 4d |ine exit| ......M| |000040c0| 6f 76 65 2e 6c 09 28 73 | 70 29 2b 2c 61 30 0d 09 |ove.l.(s|p)+,a0..| |000040d0| 09 41 64 64 71 09 09 23 | 36 2c 73 70 0d 09 09 4a |.Addq..#|6,sp...J| |000040e0| 6d 70 09 09 28 61 30 29 | 0d 23 65 6e 64 61 73 6d |mp..(a0)|.#endasm| |000040f0| 0d 09 7d 0d 0d 2f 2a 0d | 20 2a 20 45 44 49 54 5f |..}../*.| * EDIT_| |00004100| 53 43 52 4f 4c 4c 28 29 | 20 2d 20 53 63 72 6f 6c |SCROLL()| - Scrol| |00004110| 6c 20 65 64 69 74 20 77 | 69 6e 64 6f 77 20 70 65 |l edit w|indow pe| |00004120| 72 20 63 6f 6e 74 72 6f | 6c 20 76 61 6c 75 65 73 |r contro|l values| |00004130| 0d 20 2a 0d 20 2a 20 49 | 6e 70 75 74 73 3a 0d 20 |. *. * I|nputs:. | |00004140| 2a 09 09 43 75 72 72 65 | 6e 74 20 76 61 6c 75 65 |*..Curre|nt value| |00004150| 20 6f 66 20 74 65 5f 6f | 72 69 67 69 6e 20 69 6e | of te_o|rigin in| |00004160| 20 74 68 65 20 57 43 42 | 0d 20 2a 09 09 43 75 72 | the WCB|. *..Cur| |00004170| 72 65 6e 74 20 76 61 6c | 75 65 73 20 6f 66 20 74 |rent val|ues of t| |00004180| 68 65 20 73 63 72 6f 6c | 6c 65 72 73 0d 20 2a 0d |he scrol|lers. *.| |00004190| 20 2a 20 4f 75 74 70 75 | 74 73 3a 0d 20 2a 09 09 | * Outpu|ts:. *..| |000041a0| 4f 72 69 67 69 6e 20 70 | 6f 69 6e 74 73 20 69 6e |Origin p|oints in| |000041b0| 20 74 68 65 20 57 43 42 | 20 61 72 65 20 75 70 64 | the WCB| are upd| |000041c0| 61 74 65 64 0d 20 2a 09 | 09 45 6e 66 6f 72 63 65 |ated. *.|.Enforce| |000041d0| 73 20 61 20 6c 6f 77 20 | 6c 69 6d 69 74 20 6f 66 |s a low |limit of| |000041e0| 20 30 20 6f 6e 20 74 68 | 65 20 63 6f 6e 74 72 6f | 0 on th|e contro| |000041f0| 6c 73 0d 20 2a 2f 0d 65 | 64 69 74 5f 73 63 72 6f |ls. */.e|dit_scro| |00004200| 6c 6c 28 29 0d 09 7b 0d | 09 73 68 6f 72 74 20 69 |ll()..{.|.short i| |00004210| 6e 74 20 64 68 2c 20 64 | 76 3b 0d 09 0d 09 64 68 |nt dh, d|v;....dh| |00004220| 20 3d 20 64 77 70 2d 3e | 74 65 5f 6f 72 69 67 69 | = dwp->|te_origi| |00004230| 6e 2e 68 20 2d 20 28 73 | 68 6f 72 74 20 69 6e 74 |n.h - (s|hort int| |00004240| 29 23 47 65 74 43 74 6c | 56 61 6c 75 65 28 64 77 |)#GetCtl|Value(dw| |00004250| 70 2d 3e 68 73 5f 68 61 | 6e 64 6c 65 29 3b 0d 09 |p->hs_ha|ndle);..| |00004260| 69 66 28 64 68 20 3c 3d | 20 64 77 70 2d 3e 74 65 |if(dh <=| dwp->te| |00004270| 5f 6f 72 69 67 69 6e 2e | 68 29 0d 09 09 64 77 70 |_origin.|h)...dwp| |00004280| 2d 3e 74 65 5f 6f 72 69 | 67 69 6e 2e 68 20 2d 3d |->te_ori|gin.h -=| |00004290| 20 64 68 3b 0d 09 65 6c | 73 65 0d 09 09 64 77 70 | dh;..el|se...dwp| |000042a0| 2d 3e 74 65 5f 6f 72 69 | 67 69 6e 2e 68 20 3d 20 |->te_ori|gin.h = | |000042b0| 34 3b 0d 09 0d 09 64 76 | 20 3d 20 64 77 70 2d 3e |4;....dv| = dwp->| |000042c0| 74 65 5f 6f 72 69 67 69 | 6e 2e 76 20 2d 20 28 73 |te_origi|n.v - (s| |000042d0| 68 6f 72 74 20 69 6e 74 | 29 23 47 65 74 43 74 6c |hort int|)#GetCtl| |000042e0| 56 61 6c 75 65 28 64 77 | 70 2d 3e 76 73 5f 68 61 |Value(dw|p->vs_ha| |000042f0| 6e 64 6c 65 29 3b 0d 09 | 69 66 28 64 76 20 3c 3d |ndle);..|if(dv <=| |00004300| 20 64 77 70 2d 3e 74 65 | 5f 6f 72 69 67 69 6e 2e | dwp->te|_origin.| |00004310| 76 29 0d 09 09 64 77 70 | 2d 3e 74 65 5f 6f 72 69 |v)...dwp|->te_ori| |00004320| 67 69 6e 2e 76 20 2d 3d | 20 64 76 3b 0d 09 65 6c |gin.v -=| dv;..el| |00004330| 73 65 0d 09 09 64 77 70 | 2d 3e 74 65 5f 6f 72 69 |se...dwp|->te_ori| |00004340| 67 69 6e 2e 76 20 3d 20 | 34 3b 0d 09 0d 09 23 54 |gin.v = |4;....#T| |00004350| 45 53 63 72 6f 6c 6c 28 | 64 68 2c 20 64 76 2c 20 |EScroll(|dh, dv, | |00004360| 64 77 70 2d 3e 74 65 5f | 68 61 6e 64 6c 65 29 3b |dwp->te_|handle);| |00004370| 0d 09 7d 0d 0d 2f 2a 0d | 20 2a 20 47 45 54 5f 4c |..}../*.| * GET_L| |00004380| 48 28 29 20 2d 20 52 65 | 74 75 72 6e 20 74 65 78 |H() - Re|turn tex| |00004390| 74 20 6c 69 6e 65 20 68 | 65 69 67 68 74 20 70 65 |t line h|eight pe| |000043a0| 72 20 54 65 78 74 45 64 | 69 74 20 72 65 63 6f 72 |r TextEd|it recor| |000043b0| 64 0d 20 2a 0d 20 2a 20 | 49 6e 70 75 74 73 3a 0d |d. *. * |Inputs:.| |000043c0| 20 2a 09 09 64 77 70 20 | 2d 2d 3e 20 63 75 72 72 | *..dwp |--> curr| |000043d0| 65 6e 74 20 57 43 42 0d | 20 2a 0d 20 2a 09 4f 75 |ent WCB.| *. *.Ou| |000043e0| 74 70 75 74 73 3a 0d 20 | 2a 09 09 72 65 74 75 72 |tputs:. |*..retur| |000043f0| 6e 73 20 74 65 78 74 20 | 6c 69 6e 65 20 68 65 69 |ns text |line hei| |00004400| 67 68 74 20 66 6f 72 20 | 73 63 72 6f 6c 6c 69 6e |ght for |scrollin| |00004410| 67 0d 20 2a 2f 0d 67 65 | 74 5f 6c 68 28 29 0d 09 |g. */.ge|t_lh()..| |00004420| 7b 0d 09 72 65 74 75 72 | 6e 28 28 2a 28 64 77 70 |{..retur|n((*(dwp| |00004430| 2d 3e 74 65 5f 68 61 6e | 64 6c 65 29 29 2d 3e 6c |->te_han|dle))->l| |00004440| 69 6e 65 48 65 69 67 68 | 74 29 3b 20 20 2f 2a 20 |ineHeigh|t); /* | |00004450| 45 61 73 79 20 69 6e 20 | 43 21 21 21 20 2a 2f 0d |Easy in |C!!! */.| |00004460| 09 7d 0d 0d 2f 2a 0d 20 | 2a 20 47 45 54 5f 57 43 |.}../*. |* GET_WC| |00004470| 42 28 29 20 2d 20 41 6c | 6c 6f 63 61 74 65 20 61 |B() - Al|locate a| |00004480| 20 57 43 42 20 66 6f 72 | 20 61 20 6e 65 77 20 77 | WCB for| a new w| |00004490| 69 6e 64 6f 77 0d 20 2a | 0d 20 2a 20 49 6e 70 75 |indow. *|. * Inpu| |000044a0| 74 73 3a 0d 20 2a 09 09 | 6e 6f 6e 65 0d 20 2a 0d |ts:. *..|none. *.| |000044b0| 20 2a 20 4f 75 74 70 75 | 74 73 3a 0d 20 2a 09 09 | * Outpu|ts:. *..| |000044c0| 52 65 74 75 72 6e 73 20 | 2d 2d 3e 20 61 6c 6c 6f |Returns |--> allo| |000044d0| 63 61 74 65 64 20 57 43 | 42 20 6f 72 20 4e 55 4c |cated WC|B or NUL| |000044e0| 4c 20 69 66 20 6e 6f 6e | 65 20 6c 65 66 74 0d 20 |L if non|e left. | |000044f0| 2a 2f 0d 67 65 74 5f 77 | 63 62 28 29 0d 09 7b 0d |*/.get_w|cb()..{.| |00004500| 09 69 6e 74 20 69 3b 0d | 09 0d 09 66 6f 72 28 69 |.int i;.|...for(i| |00004510| 3d 30 3b 20 69 3c 4d 41 | 58 5f 57 49 4e 44 4f 57 |=0; i<MA|X_WINDOW| |00004520| 53 3b 20 69 2b 2b 29 0d | 09 09 69 66 28 64 77 5b |S; i++).|..if(dw[| |00004530| 69 5d 2e 77 70 20 3d 3d | 20 4e 55 4c 4c 29 0d 09 |i].wp ==| NULL)..| |00004540| 09 09 7b 0d 09 09 09 64 | 77 5b 69 5d 2e 74 65 5f |..{....d|w[i].te_| |00004550| 68 61 6e 64 6c 65 20 3d | 20 4e 55 4c 4c 3b 09 09 |handle =| NULL;..| |00004560| 09 2f 2f 20 4d 61 72 6b | 20 65 64 69 74 69 6e 67 |.// Mark| editing| |00004570| 20 6e 6f 74 20 72 65 61 | 64 79 20 74 68 69 73 20 | not rea|dy this | |00004580| 77 69 6e 64 6f 77 0d 09 | 09 09 72 65 74 75 72 6e |window..|..return| |00004590| 28 26 64 77 5b 69 5d 29 | 3b 0d 09 09 09 7d 0d 09 |(&dw[i])|;....}..| |000045a0| 72 65 74 75 72 6e 28 30 | 29 3b 0d 09 7d 0d 0d 2f |return(0|);..}../| |000045b0| 2a 0d 20 2a 20 46 49 4e | 44 5f 57 43 42 28 29 20 |*. * FIN|D_WCB() | |000045c0| 2d 20 46 69 6e 64 20 77 | 69 6e 64 6f 77 20 63 6f |- Find w|indow co| |000045d0| 6e 74 72 6f 6c 20 62 6c | 6f 63 6b 20 66 6f 72 20 |ntrol bl|ock for | |000045e0| 67 69 76 65 6e 20 77 69 | 6e 64 6f 77 0d 20 2a 0d |given wi|ndow. *.| |000045f0| 20 2a 20 52 65 74 75 72 | 6e 73 20 57 43 42 20 70 | * Retur|ns WCB p| |00004600| 6f 69 6e 74 65 72 20 6f | 72 20 30 20 69 66 20 67 |ointer o|r 0 if g| |00004610| 69 76 65 6e 20 77 69 6e | 64 6f 77 20 70 6f 69 6e |iven win|dow poin| |00004620| 74 65 72 20 64 6f 65 73 | 20 6e 6f 74 0d 20 2a 20 |ter does| not. * | |00004630| 62 65 6c 6f 6e 67 20 74 | 6f 20 6f 6e 65 20 6f 66 |belong t|o one of| |00004640| 20 6f 75 72 20 57 43 42 | 27 73 2e 0d 20 2a 2f 0d | our WCB|'s.. */.| |00004650| 66 69 6e 64 5f 77 63 62 | 28 77 70 29 0d 57 69 6e |find_wcb|(wp).Win| |00004660| 64 6f 77 50 74 72 20 77 | 70 3b 0d 09 7b 0d 09 69 |dowPtr w|p;..{..i| |00004670| 6e 74 20 69 3b 0d 09 0d | 09 66 6f 72 28 69 3d 30 |nt i;...|.for(i=0| |00004680| 3b 20 69 3c 4d 41 58 5f | 57 49 4e 44 4f 57 53 3b |; i<MAX_|WINDOWS;| |00004690| 20 69 2b 2b 29 0d 09 09 | 69 66 28 64 77 5b 69 5d | i++)...|if(dw[i]| |000046a0| 2e 77 70 20 3d 3d 20 77 | 70 29 0d 09 09 09 72 65 |.wp == w|p)....re| |000046b0| 74 75 72 6e 28 26 64 77 | 5b 69 5d 29 3b 0d 09 72 |turn(&dw|[i]);..r| |000046c0| 65 74 75 72 6e 28 30 29 | 3b 0d 09 7d 0d 00 00 00 |eturn(0)|;..}....| |000046d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000046e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000046f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004700| 00 00 01 00 00 00 01 16 | 00 00 00 16 00 00 00 d4 |........|........| |00004710| 38 3a 20 33 30 20 32 45 | 20 46 46 20 45 45 20 0a |8: 30 2E| FF EE .| |00004720| 0d 30 30 31 44 45 43 3a | 20 45 35 20 34 38 20 0a |.001DEC:| E5 48 .| |00004730| 0c 44 65 6d 6f 57 69 6e | 64 6f 77 2e 43 6e 02 00 |.DemoWin|dow.Cn..| |00004740| 00 00 54 45 58 54 45 44 | 49 54 01 00 00 00 00 00 |..TEXTED|IT......| |00004750| 00 00 54 45 58 54 45 44 | 49 54 01 00 00 00 00 00 |..TEXTED|IT......| |00004760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004770| 00 00 97 e4 ae ab 00 00 | 46 4d 00 00 01 ea 20 0a |........|FM.... .| |00004780| 0d 30 30 31 44 46 43 3a | 20 32 30 20 32 45 20 46 |.001DFC:| 20 2E F| |00004790| 46 20 46 34 20 0a 0d 30 | 30 31 45 30 30 3a 20 32 |F F4 ..0|01E00: 2| |000047a0| 32 20 32 45 20 46 46 20 | 46 38 20 0a 0d 30 30 31 |2 2E FF |F8 ..001| |000047b0| 45 30 34 3a 20 34 45 42 | 41 20 46 39 35 41 20 0a |E04: 4EB|A F95A .| |000047c0| 0d 30 30 31 45 30 38 3a | 20 34 33 20 45 44 20 46 |.001E08:| 43 ED F| |000047d0| 45 20 38 32 20 0a 0d 30 | 30 31 45 30 43 3a 20 33 |E 82 ..0|01E0C: 3| |000047e0| 30 20 32 45 20 46 46 20 | 45 45 20 0a 0d 30 30 31 |0 2E FF |EE ..001| |000047f0| 45 31 30 3a 20 45 35 20 | 34 38 20 0a 0d 30 30 31 |E10: E5 |48 ..001| |00004800| 00 00 00 0a 00 09 06 4d | 6f 6e 61 63 6f 2e 00 00 |.......M|onaco...| |00004810| 00 04 00 06 00 03 00 00 | 01 00 00 00 01 16 00 00 |........|........| |00004820| 00 16 00 00 00 d4 00 00 | 4e 1c 00 98 00 00 00 1c |........|N.......| |00004830| 00 46 00 01 45 46 4e 54 | 00 00 00 12 45 54 41 42 |.F..EFNT|....ETAB| |00004840| 00 00 00 1e 03 eb 00 00 | 00 00 00 00 00 00 eb b8 |........|........| |00004850| 03 ec 00 47 00 00 00 0e | 00 00 eb a8 46 4f 42 4a |...G....|....FOBJ| |00004860| ff ff ff ff 00 40 01 aa | 00 40 01 ac 00 40 01 ae |.....@..|.@...@..| |00004870| 00 40 01 b0 00 40 01 b2 | 00 40 01 b4 00 40 01 b6 |.@...@..|.@...@..| |00004880| 00 40 01 b8 00 40 10 18 | 00 40 01 bc 00 40 01 be |.@...@..|.@...@..| |00004890| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |000048a0| 00 40 01 46 4f 42 4a ff | ff ff ff 00 40 01 aa 00 |.@.FOBJ.|....@...| |000048b0| 40 01 ac 00 40 01 ae 00 | 40 01 b0 00 40 01 b2 00 |@...@...|@...@...| |000048c0| 40 01 b4 00 40 01 b6 00 | 40 01 b8 00 40 10 18 00 |@...@...|@...@...| |000048d0| 40 01 bc 00 40 01 be 00 | 40 01 be 00 40 01 be 00 |@...@...|@...@...| |000048e0| 40 01 be 00 40 01 be 00 | 40 01 00 00 00 00 00 00 |@...@...|@.......| |000048f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| +--------+-------------------------+-------------------------+--------+--------+